Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by mirage228,
9. Sep 2012
Ja, also Hauptsache Du erzeugst die StringList irgendwie in jedem Deiner Konstruktoren. Wenn Du das TStringList.Create allerdings nur zentral an einer Stelle hast (bzw. generell solche Initialisierungs-Sachen) erhöht das die Wartbarkeit ungemein :)
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by mirage228,
9. Sep 2012
Beispielsweise. Das wäre die einfachste Lösung.
Oder Du machst zwei Konstruktoren explizit in der Klasse.
Der eine ruft dann nur den anderen Konstruktor auf (auch kein "inherited Create"!) und setzt die FileName-Property. Aber auch die Lösung über eine dritte Methode in der Klasse ist möglich, diese übernimmt dann die Erstellung der Objekte und wird von beiden Konstruktoren benutzt.
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by mirage228,
9. Sep 2012
Du rufst den falschen Konstruktor in Deinem Code auf.
Du erstellst das Objekt nur im constructor Create(String). In Deinem Code rufst Du aber Create() auf. Das lädt nur den Konstruktor der Parent-Klasse. Dort wird nix erstellt.
Änder Deinen Code ab, sodass auch im Create die StringList erzeugt wird, z.B. über eine Helfer-Methode. Alternativ kannst Du auch Deinen Konstruktur-Aufruf ändern....
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by mirage228,
9. Sep 2012
Und wenn Du mit Lines.Assign() arbeitest?
Memo1.Liens.Assign(Conf.MemoInhalt);
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by mirage228,
9. Sep 2012
Also hier bei dem Code sehe ich kein Problem.
Ich muss nochmal nachfragen:
Führst Du wirklich selbst ein
MemoInhalt := TStringList.Create;
im constructor von TAppConfig durch? (Und dann ein .Free() im destructor...)
Du kannst auf alle anderen Properties ohne Initialisierung zugreifen, da es ja keine Klassen bzw. Objekte sind...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by mirage228,
9. Sep 2012
Objekt.MemoInhalt := Memo1.Lines as TStringList;
:P
Er hat ja nicht gesagt, ob das auslesen direkt danach erfolgt oder erst beim Programmstart, wo das Objekt dann ja vielleicht wirklich "nil" sein könnte...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by mirage228,
9. Sep 2012
Ist MemoInhalt vielleicht = nil?
Könnte sein, dass Du das Objekt manuell intialisieren musst...