Geht schon musst nur sicherstellen, dass der button kein sub-object von dem panel mehr ist:
Delphi-Quellcode:
procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
TButton(sender).Parent := nil;
Panel1.Free;
end;
procedure TForm1.Button1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
free;
end;
Das problem war eigentlich nur, dass er nach dem mouseDown noch mouseUp für den button erzeugt und da, bei dir kein button mehr existierte hats gekrach. ergo kannst du auch alles in mouseUp schreiben
cu,
maximov.