hab hier mal nen Button genommen, ist aber vom Prinzip her gleich:
jetzt definieren wir erstmal eine eigene Message:
Delphi-Quellcode:
const
WM_DestroyFrame=WM_USER+10;
nun fügen wir eine Behandlungsroutine in das Form ein
Delphi-Quellcode:
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
procedure WMDestroyFrame(var msg:TMessage); message WM_DestroyFrame;
public
{ Public-Deklarationen }
end;
...
procedure TForm1.WMDestroyFrame(var msg:TMessage);
begin
if msg.lParam>0 then
TButton(msg.LParam).free; //hab hier mal in LParam den pointer auf die TButton-Instanz geschrieben
end;
und im Buttonclick schicken wir die Nachricht...
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
postmessage(self.handle,WM_DestroyFrame,0,integer(Button1)); //Pointer auf TButton-Instanz als LParam weitergeben
end;
musst das eigentlich nur noch an deine Klasse anpassen
Gruß Frank