Eventuell eine Möglichkeit. Hier wird SaveToFile beeinflusst, in dem man die Klasse ändert. Das machen wir nicht im Originalcode, sondern in der eigenen
Unit. Danach macht SaveToFile was wir wollen.
Ich weiß nicht ob es das ist was du gesucht hast, aber es ist eine Möglichkeit.
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
//Die TStringList-Klasse wird erweitert
type
TStringList =
class(Classes.TStringList)
public
procedure SaveToFile(
const FileName:
string);
override;
end;
type
TForm1 =
class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TStringList.SaveToFile(
const FileName:
string);
var
i: Integer;
begin
//Hier findet eine Manipulation vor dem Speichern statt.
for i := 0
to Self.Count - 1
do
Self[i] := IntToStr(i) + '
:"' + Self[i] + '
"';
inherited;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
sl: TStringList;
begin
sl := TStringList.Create;
try
sl.Add('
Zeile 1');
sl.Add('
Zeile 2');
sl.Add('
Zeile 3');
sl.Add('
Zeile 4');
sl.Add('
Zeile 5');
//Normales Speichern. Doch vor dem Speichern wird manipuliert.
sl.SaveToFile(ChangeFileExt(ParamStr(0), '
.txt'));
finally
sl.Free;
end;
end;
end.