ja, dieses Problem lässt sich so tatsächlich lösen. Aber da gibts noch ein paar andere Klippen...
hab das mit dem
Control " has no parent window mal ein bischen unter die Lupe genommen....
Es sieht für mich folgendermassen aus:
Klingt vielleicht ein bischen Konfus, aber so stellt sich das durch rumprobieren für mich dar...:
These: Ein Objekt existiert erst wirklich dann wenn der Constructor wirklich und endgültig abgeschlossen ist....
weil : keine Methode die NUR als Methode implementiert ist funktioniert..... Man kann keine Listboxen füllen, nicht auf den Canvas einer Paintbox malen, etc....
Nur was als Property deklariert ist (width, top, etc.....) lässt sich im Constructor verwenden. (Als Ausnahme konnte ich nur die LoadFromFile() funktion von TImage finden).
@Tendel
auch wenn man die Parent Zuweisung NICHT vergessen hat, kann einem diese Meldung begegnen.....
Das wäre auch möglich...
Verlagere deinen Code mit den items.Add() einfach in eine eigene Funktion die du im Hauptprogramm direkt nach dem create() ausführen lässt....
combo1 := TComboBox.create(self);
combo1.fuellen;
dann funktioniert es.....
Das Unschöne dabei ist: Dadurch das man "extra nur deswegen" eine Prozedur oder Funktion öffentlich machen muss
Nach meiner Auffassung von OOP wäre es am elegantesten wenn nichts ausser "Übergaberoutinen" öffentlich sind.....
Catweasel
Pommes werden schneller fertig wenn man sie vor dem Frittieren einige Minuten in siedendes Fett legt.