So sollte es auch gehen:
Delphi-Quellcode:
procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
{ bei DblClick enthält Shift noch ein ssDouble, aber auch alles andere außer ssLeft soll ja vermutlich kein Drag auslösen }
if (Sender is TPanel) and (Button = TMouseButton.mbLeft) and (Shift = [ssLeft]) then
TPanel(Sender).BeginDrag(False, 10);
end;
Bei einem Doppelklick werden ja auch zwei MouseDown Events ausgelöst. Den zweiten erkennt man mit
ssDouble in Shift
.