Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2014, 16:46   #1
romantik1993
Пользователь
 
Регистрация: 12.03.2012
Сообщений: 99
Восклицание Сделать, чтобы класс был в отдельном модуле и была программа, к которой он подключается

вот есть программа которая с помощью класса переводит кирилицу в латиницу.....но нужно чтобы класс был в отдельном модуле и подключался к программе ......помогите переделать вот эту программу так чтобы класс был в отдельном модуле и была программа к которой он подключается

Код:
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
type
  TTransliterator = class
  private
    FBufferOut: string;
    procedure SetBufferIn(const S: string);
  public
   property BufferOut: string read FBufferOut;  // read only
    property BufferIn: string write SetBufferIn; // write only
  end;
 
implementation
 
{$R *.dfm}
 
 
procedure TTransliterator.SetBufferIn(const S: string);
var
  Index: Integer;
  Temp, X: string;
begin
  Temp:= AnsiLowerCase(S);
  FBufferOut:= '';
 
  for Index:= 1 to Length(Temp) do
    begin
      case Temp[Index] of
        'а': X:= 'a';
        'б': X:= 'b';
        'в': X:= 'v';
        'г': X:= 'g';
        'д': X:= 'd';
        'е': X:= 'e';
        'ё': X:= 'yo';
        'ж': X:= 'j';
        'з': X:= 'z';
        'и': X:= 'i';
        'й': X:= 'j';
        'к': X:= 'k';
        'л': X:= 'l';
        'м': X:= 'm';
        'н': X:= 'n';
        'о': X:= 'o';
        'п': X:= 'p';
        'р': X:= 'r';
        'с': X:= 's';
        'т': X:= 't';
        'у': X:= 'u';
        'ф': X:= 'f';
        'х': X:= 'h';
        'ц': X:= 'ts';
        'ч': X:= 'ch';
        'ш': X:= 'sh';
        'щ': X:= 'sch';
        'ъ': X:= '`';
        'ы': X:= 'y';
        'ь': X:= '`';
        'э': X:= 'e';
        'ю': X:= 'yu';
        'я': X:= 'ya';
      else X:= string(Temp[Index]);
      end; // case
 
      FBufferOut:= FBufferOut + X;
    end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var 
  tl: TTransliterator;
begin
tl:= TTransliterator.Create(); // в принципе, можно 1 раз создать, а не по кнопке
  try 
    tl.BufferIn:= Edit1.Text;
    Edit2.Text:= tl.BufferOut;
  finally
    tl.Free();
  end;
end;
 
end.
romantik1993 вне форума Ответить с цитированием
Старый 28.11.2014, 17:10   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Ну так жмите меню - создать новый модуль, вырезать - вставить и пару строчек под редактирование. Все ж написано, это даже не программирование, а навыки текстового редактора.
p51x вне форума Ответить с цитированием
Старый 28.11.2014, 18:44   #3
romantik1993
Пользователь
 
Регистрация: 12.03.2012
Сообщений: 99
По умолчанию

я понимаю что все написано, ток не знаю как это все работать будет.....какие пару строчек под редактирование
romantik1993 вне форума Ответить с цитированием
Старый 28.11.2014, 20:31   #4
Iron Monk
Форумчанин
 
Аватар для Iron Monk
 
Регистрация: 05.10.2007
Сообщений: 478
По умолчанию

Цитата:
Сообщение от romantik1993 Посмотреть сообщение
я понимаю что все написано, ток не знаю как это все работать будет.....какие пару строчек под редактирование
1 юнит:
Код:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Translit;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  tl: TTransliterator;
begin
tl:= TTransliterator.Create();
  try
    tl.BufferIn:= Edit1.Text;
    Edit2.Text:= tl.BufferOut;
  finally
    tl.Free();
  end;
end;
 
end.
2 юнит:
Код:
unit Translit;

interface

uses
  SysUtils;

type
  TTransliterator = class
  private
    FBufferOut: string;
    procedure SetBufferIn(const S: string);
  public
   property BufferOut: string read FBufferOut;  // read only
   property BufferIn: string write SetBufferIn; // write only
  end;

implementation

procedure TTransliterator.SetBufferIn(const S: string);
var
  Index: Integer;
  Temp, X: string;
begin
  Temp:= AnsiLowerCase(S);
  FBufferOut:= '';

  for Index:= 1 to Length(Temp) do
    begin
      case Temp[Index] of
        'а': X:= 'a';
        'б': X:= 'b';
        'в': X:= 'v';
        'г': X:= 'g';
        'д': X:= 'd';
        'е': X:= 'e';
        'ё': X:= 'yo';
        'ж': X:= 'j';
        'з': X:= 'z';
        'и': X:= 'i';
        'й': X:= 'j';
        'к': X:= 'k';
        'л': X:= 'l';
        'м': X:= 'm';
        'н': X:= 'n';
        'о': X:= 'o';
        'п': X:= 'p';
        'р': X:= 'r';
        'с': X:= 's';
        'т': X:= 't';
        'у': X:= 'u';
        'ф': X:= 'f';
        'х': X:= 'h';
        'ц': X:= 'ts';
        'ч': X:= 'ch';
        'ш': X:= 'sh';
        'щ': X:= 'sch';
        'ъ': X:= '`';
        'ы': X:= 'y';
        'ь': X:= '`';
        'э': X:= 'e';
        'ю': X:= 'yu';
        'я': X:= 'ya';
      else X:= string(Temp[Index]);
      end; // case
      FBufferOut:= FBufferOut + X;
    end;
end;
end.
Iron Monk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать, чтобы в dbgrid всегда была прокрутка? leklerk Общие вопросы Delphi 7 23.04.2012 06:11
Функционал программы должен быть реализован как класс, размещенный в отдельном модуле. Сейвс Помощь студентам 0 29.02.2012 10:12
Как сделать, чтобы надпись была наверху? Яр|/||< (^_^) HTML и CSS 0 23.01.2011 17:05
Как сделать чтобы форма была над трэем Bigtyoma Общие вопросы Delphi 2 24.09.2008 17:40