А вот такой класс не подойдет?
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | interface
type
TOnOpen = procedure (FileName: String ) of object ;
TMyTextFile = class
FFileName: String ;
FOnOpen: TOnOpen;
FMemo: Pointer ;
constructor Create(FileName: String ; Memo: Pointer );
destructor Destroy; override;
public
property Memo: Pointer read FMemo write FMemo;
property OnOpen: TOnOpen read FOnOpen write FOnOpen;
property FileName: String read FFileName write FFileName;
procedure OpenFile;
end ;
implementation
constructor TMyTextFile . Create(FileName: String ; Memo: Pointer );
begin
inherited Create;
FFileName:=FileName;
FMemo:=Memo;
end ;
destructor TMyTextFile . Destroy;
begin
inherited ;
end ;
procedure TMyTextFile . OpenFile;
begin
TMemo(Memo^).Lines . LoadFromFile(FFileName);
FOnOpen(FFileName);
end ;
|
Чтобы загрузить, например в Memo1 файл C:\T.txt надо:
Код:
1 2 3 4 5 6 7 8 | var
MyTextFile: TMyTextFile;
...
begin
MyTextFile:=TMyTextFile . Create( 'C:\T.txt' , @Memo1);
MyTextFile . OpenFile;
MyTextFile . Destroy;
end ;
|
Событие OnOpen будет происходить каждый раз, когда запускается процедура OpenFile