Einzelnen Beitrag anzeigen

Benutzerbild von Pichel
Pichel

Registriert seit: 25. Feb 2005
Ort: Kassel
65 Beiträge
 
Delphi 7 Professional
 
#1

DragDrop zwischen Controls bei OnClick und PopUpMenü

  Alt 3. Jan 2006, 22:02
Hallöchen.

Habe mich jetzt schon unsagbar lange damit rumgeschlagen (probieren, im Forum suchen etc) aber es geht nicht.

Wenn ich TButton Controls per DragDrop verschieben will, um Ihre Reihenfolge zu verändern gibt es da ein großes Problem.
Das OnClick des Button sowie das PopUpMenü wird benutzt.

Normalerweise würde ich es so machen: (natürlich DragMode auf dmAutomatic setzen)

Delphi-Quellcode:
procedure TaForm.btDragDrop(Sender, Source: TObject; X, Y: Integer);
begin
  if Source.ClassType = TButton then begin
    // hier der Button-Tausch
  end;
end;

procedure TaForm.btDragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  Accept := (Source.ClassType = TButton);
end;
Hier ist nur das Problem, daß ein DragDrop mit der linken Maustaste ausgelöst wird und somit das OnClick-Event entfällt.

Mache ich das ganze manuell (DragMode = dmManual):

Delphi-Quellcode:
procedure TaForm.btMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
{$ifdef BETA}DebugInfo:='aForm btMouseDown';{$endif}
  if (Sender.ClassType = TButton)
  and (Button = mbRight) then begin
    (Sender as TControl).BeginDrag(False);
  end;
end;
...dann das Problem, es kommt kein Popup-Menü mehr. Übel.
Grüße aus Kassel.

Konfuzius sprach: Etwas lernen und sich immer wieder darin üben - schafft das nicht auch Befriedigung?
  Mit Zitat antworten Zitat