Einzelnen Beitrag anzeigen

choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#8

Re: Selbstzerstörung eines Controls

  Alt 7. Nov 2003, 12:43
Hallo maximov,

danke für die Idee! Für den speziellen Fall, könnte man das tatsächlich mit einem PostMessage machen, weil die Ereignissbehandlungsroutine durch die selbe Queue aufgerufen worden ist.

Eine Lösung könnte so implementiert
Delphi-Quellcode:
const
  WM_FREEVCLCONTROL = WM_USER+42;

type
  TForm1 = class(TForm)
  //...
  private
    procedure WMFreeVCLControl(var Message: TMessage);message WM_FREEVCLCONTROL;
  //...
  end;

procedure TForm1.WMFreeVCLControl(var Message: TMessage);
begin
  Assert( Message.WParam<>0 );
  TObject(Message.WParam).Free;
end;
und dann von Deinem Click-Event so verwendet werden:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  PostMessage(Handle, WM_FREEVCLCONTROL, Integer(Sender), 0);
end;
gruß, choose
  Mit Zitat antworten Zitat