Am Einfachsten kannst du das machen, in dem du dein zweites Panel (bzw. alle analogen Eigenschaften) erst anzeigst, wenn die Maus bewegt wird. Dazu einfach folgende Methoden ändern:
Delphi-Quellcode:
procedure TMovingPanel.OnMouseDown;
begin
if (self.FComesFrom = fPool) or (self.FComesFrom = fPlan) then
begin
screen.Cursor := crdrag
end // if (self.FComesFrom = fPool) or (self.FComesFrom = fPlan)
else
begin
screen.Cursor := crno;
end;
if (MoveWho <> mwNone) then
begin
OldLeft := self.ScreenToClient(Mouse.CursorPos).X;
OldTop := self.ScreenToClient(Mouse.CursorPos).Y;
P_tmpDraw := TPanel.Create(self);
P_tmpDraw.Caption := Self.Caption;
P_tmpDraw.Width := self.Width;
P_tmpDraw.Height := self.Height;
P_tmpDraw.Color := self.Color;
P_tmpDraw.Visible := false; // <-- Unsichtbar solange nicht bewegt
case FComesFrom of
fPlan:
begin
PPlan.InsertControl (P_tmpDraw);
end; // fPlan
fPool:
begin
PPool.InsertControl (P_tmpDraw);
end; // fPool
end; // case FComesFrom
P_tmpDraw.BringToFront;
Moving := True;
end; // if (MoveWho <> mwNone) and (Button = mbLeft)
end; // of procedure TMovingPanel.OnMouseDown;
Delphi-Quellcode:
procedure TMovingPanel.MouseMove (Shift: TShiftState; X, Y: Integer);
begin
// inherited MouseMove(Shift, X, Y);
if (MoveWho <> mwNone) and Moving then
begin
p_tmpDraw.Visible := true; // Und wieder sichtbar bei Mausbewegung
...
Kannst du natürlich ganz analog mit z.B. dem Cursor machen, falls du den Drag-Cursor erst sehen möchtest, wenn die Maus bewegt wird. Leider lässt es sich nicht ganz hübsch trennen, ob es sich um einen Doppelklick handelt oder nicht, da jedes Mausereignis ein Interrupt auslöst, so dass du von Delphi immer entsprechende Events bekommst.
Falls du aber wirklich unbedingt beides komplett trennen möchtest, solltest du die Eigenschaft Moving (und alles weitere) durch einen Timer setzen. Den würde dann ein Mausdown starten, ein MouseUp und/oder Doppelklick stoppen, aber du müsstest damit auch deine Zeit für einen Doppelklick verwenden, nicht die Windwos eigene. Bzw. die kann man sicher auch irgendwie auslesen, aber bestimmt nicht der schönste Weg.