Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#15

AW: Kann man SaveToFile beeinflussen?

  Alt 20. Mär 2015, 16:28
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.

Geändert von Popov (20. Mär 2015 um 18:58 Uhr) Grund: Fehler korrigiert. Danke an DeddyH.
  Mit Zitat antworten Zitat