Форма текстового редактора EDITFORM PAS
{ EDITFORM.PAS — Простейший текстовый редактор, демонстрирующий использование DLL Автор: Джим Мишель Дата последней редакции: 12/05/97 } unit editform; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; MainMenu1: TMainMenu; File1: TMenuItem; Open1: TMenuItem; Save1: TMenuItem; N1: TMenuItem; Exit1: TMenuItem; procedure Exit1Click(Sender: TObject);
procedure Open1Click(Sender: TObject);
procedure Save1Click(Sender: TObject);
private { Private declarations } FileName : String; procedure OpenFile(Filename: String);
procedure SaveFile(Filename: String);
public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} uses IniFiles; procedure TForm1.Exit1Click(Sender: TObject);
begin Close; end; procedure TForm1.Open1Click(Sender: TObject);
begin if OpenDialog1.Execute then OpenFile (OpenDialog1.FileName);
end; procedure TForm1.Save1Click(Sender: TObject);
begin if SaveDialog1.Execute then SaveFile (SaveDialog1.FileName);
end; procedure TForm1.OpenFile (Filename: String);
begin Memo1.Lines.LoadFromFile(Filename);
end; procedure TForm1.SaveFile (Filename: String);
begin Memo1.Lines.SaveToFile (Filename);
end; end.
Протестируйте программу и убедитесь в том, что она загружает и сохраняет ASCII-файлы (годится любой файл с расширением .TXT, а также .PAS и .DPR).
Мы хотим сделать так, чтобы наша программа читала другие файловые форматы, преобразовывала их в обычный текст и выводила его. Заранее неизвестно, какие форматы придется преобразовывать, поэтому нам потребуется возможность добавлять форматы по мере необходимости. Вероятно, простейший выход заключается в использовании файла инициализации (INI-файла).
Общая идея — поместить в INI-файл описание файлового формата, стандартное расширение и имя DLL, выполняющей преобразование. Пример такого INI-файла приведен в листинге 2.7.