Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by jaenicke,
1. Mär 2024
Entferne das override. Damit überschreibst du den geerbten Konstruktor, so dass dieser dann aufgerufen wird.
Die Konstruktion ist aber seltsam. Warum ruft der überschriebene Konstruktor mit einem Parameter den mit 4 Parametern auf, wenn der doch ohnehin wieder den mit einem Parameter aufruft? Ohne zu wissen was darin passiert, lässt sich dazu aber nicht viel sagen. Das kann man sicher anders...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by jaenicke,
27. Feb 2024
Delphi 7 halt...
In einer aktuelleren Version (hier die Community Edition) siehst du die Ursache:
Ursache:constructor TMyMainForm.CreateMe( owner_ : TComponent );
begin
inherited Create( owner_ );
Besser:constructor TMyMainForm.CreateMe( owner_ : TComponent );
begin
inherited;
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by jaenicke,
27. Feb 2024
Du hast dort gar keine Referenzzählung, denn du leitest von TForm ab. In den visuellen Komponenten sind zwar die Interface-Routinen vorhanden, so dass du direkt Interfaces implementieren kannst, aber eben ohne Referenzzählung.
Wenn du also ein solches Objekt in einer Interfacereferenz speicherst und das Objekt freigegeben wird, zeigt die Interfacereferenz auf ein ungültiges Objekt. Allerdings...