Ich hab das Gefühl, du hast das Konzept der OO Programmierung nicht ganz verstanden. Sinn ist es, dass Objekte eigenständig arbeiten sollen. In deinem Fall ist die Klasse TLoadSave. Und so wie es aussieht, soll die Texte in einem Memo wegloggen. Es macht dann keinen Sinn, bei jedem Aufruf deiner Log Methode das Memo mitzuübergeben. So Sachen macht man einmal, in deinem Fall würd ich es im Constructor machen. Und um bischen flexibel zu bleiben, würde ich mich nicht auf ein Memo beschränken, sondern würde im Constructor einfach eine TStrings Instanz übergeben.
Delphi-Quellcode:
unit uLoadSave;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls ;
type
TLoadSave =
class
private
FStringList: TStrings;
public
constructor Create (AStringList : TStrings) ;
reintroduce ;
property StringList : TStrings
read FStringList
write FStringList ;
procedure Log (What :
string) ;
end;
implementation
{ TLoadSave }
constructor TLoadSave.Create(AStringList: TStrings);
begin
inherited Create ;
assert (assigned(AStringList)
and (AStringList
is TStrings),'
Bitte StringList Objekt im Constructor übergeben') ;
FStringList := AStringList ;
end;
procedure TLoadSave.Log(What:
string);
begin
FStringList.Add (What) ;
end;
end.
Der Aufruf erfolgt dann so:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
LS := TLoadSave (memo1.lines) ; // LS als Variable in deiner Form deklarieren
end;
procedure TForm1.Button1Click (Sender : TObject) ;
begin
LS.Log ('Halleluja') ;
end ;