Wenn du es nur über den Kopfteil verschieben möchtest, dann grenze den Aktionsbereich für dein Move doch uber die mitgelieferte X/Y-Koordinate ein.
Bsp.:
Delphi-Quellcode:
procedure CWidgetBase.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
inherited;
IF Y < MyHeader.Height then Exit;
Screen.cursor := crHandPoint;
ReleaseCapture;
Self.Perform(WM_SYSCOMMAND,SC_MOVE,0);
end;
Hierbei soll MyHeader dein Kopfteil sein. Den Cursor kannst du im MouseUp wieder zurücksetzen. Willst du die Position während des Movens überwachen, so nutze die Windows-Nachricht wm_moving. Ich habe ähnliches Thema hier
wm_moving, wm_sizing am wickel gehabt.
Gruß oki