Einzelnen Beitrag anzeigen

Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#14

Re: text-string aus 2. klasse aufrufen

  Alt 14. Apr 2007, 14:06
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 ;
  Mit Zitat antworten Zitat