Ein anderer Ansatz:
Delphi-Quellcode:
type
TPanel = class(ExtCtrls.TPanel)
procedure WMNCHitTest(var Message: TWMNCHitTest); message WM_NCHITTEST;
protected
procedure CreateParams(var Params: TCreateParams); override;
end;
{....}
procedure TPanel.CreateParams(var Params: TCreateParams);
begin
//Damit wird dein Panel sizeable
inherited CreateParams(Params);
Params.Style := Params.Style or WS_SIZEBOX;
end;
procedure TPanel.WMNCHitTest(var Message: TWMNCHitTest);
begin
//Damit kann man es zusaätzlich verschieben
inherited;
if Message.Result = htClient then
Message.Result := htCaption;
end;
Du Kannst beide Methoden unabhängig voneinander benutzen. Viele Grüße