Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Chewie,
1. Okt 2003
Du castest ja nur den Pointer, nicht den Inhalt! Welche Methode aufgerufen wird, bestimmt der Typ zur Laufzeit, nicht der im Quelltext angegebene!
Probiers mal selber aus:
type
TMyObject = class
public
destructor Destroy; override;
end;
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Chewie,
1. Okt 2003
No prob. Das ist ja das schöne von Klassen: Eine Objektvariable ist ja nur ein Zeiger auf das Objekt. Durch den Cast des Panels in TComponent kann man zwar nur noch auf die Eigenschaften und Methoden von TComponent zugreifen, der Inhalt bleibt aber der gleiche. Es wird weiterhin der Destruktur von TPanel aufgerufen.
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Chewie,
1. Okt 2003
Also: Ich nehm an, Beispielpanel ist vom Typ TPanel.
Dann sollte folgender Aufruf funktionieren:
destroy_components(TComponent(Beispielpanel));
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Chewie,
1. Okt 2003
Ersetz mal
procedure Destroy_Component(Compo : TComponent);
begin
if Compo <> nil then
begin
Compo.Destroy;
Compo := nil;
Compo.Free;
end;