Zitat:
Was da im Create passiert, ist wahrscheinlich völlig irrelevant.
In wie fern ?
Du kennst doch die Zusammenhänge nicht wie ich mit den Daten im weiteren verlauf arbeite.
Alles was deklariert wurde wird auch im späteren verlauf verwendet.
Und funktioniert in meiner anderen Anwendung "OHNE"
Dll.
Mit
irrelevant meinte ich "für die Lebensdauer der Instanz irrelevant". Du erwähntest, daß die Listbox kurz nach der Erstellung wieder freigegeben wird. Wenn nicht an irgendeiner Stelle die Instanz explizit freigegeben wird, kann das eigentlich nur geschehen, wenn sämtliche Interface-Referenzen auf die Instanz (auch implizit) auf nil gesetzt werden. Also sollte solange der Variablen InstrumentList nichts anderes zugewiesen wird und diese Variable nicht aus dem Scope verschwindet auch die TSkinListBox-Instanz intakt bleiben.
Kannst du nicht einen Breakpoint in das Destroy setzen und schauen, wodurch es ausgelöst wurde?
BTW, es macht zwar bislang hier keinen Unterschied, aber man sollte doch immer
inherited Create
aufrufen. Man weiß ja nie, was in zukünftigen Delphi-Versionen in
TObject.Create
so alles noch eingebaut wird.