Forum: Programmieren allgemein
by stahli,
20. Sep 2011
Von der Ferne ist das etwas schwer einzuschätzen.
Grundsätzlich könntest Du ein Flag "IgnoreMouseUp" einführen (ggf. Grid.Tag mißbrauchen), vor BeginDrag setzen und dann OnMouseUp ignorieren.
Das was Du in OnMouseUp behandelst, müsstest Du dann in OnEndDrag ausführen.
Mooooment...!
Vielleicht kannst Du überhaupt Deine Behandlung in OnEndDrag durchführen. Da müsstest Du ja immer landen...
Forum: Programmieren allgemein
by stahli,
20. Sep 2011
Ah, es ist doch normal so (hatte ich nicht mehr in Erinnerung):
procedure TControl.BeginDrag(Immediate: Boolean; Threshold: Integer);
var
P: TPoint;
begin
if (Self is TCustomForm) and (FDragKind <> dkDock) then
raise EInvalidOperation.CreateRes(@SCannotDragForm);
CalcDockSizes;
if (DragControl = nil) or (DragControl = Pointer($FFFFFFFF)) then
Forum: Programmieren allgemein
by stahli,
20. Sep 2011
Ich kenne dieses Grid nicht.
Daher nur mal eine grundsätzliche Anmerkung: Der Ablauf solcher Funktionalitäten wird durch ein Debugging (natürlich) total gestört. Um Abläufe bei Mausklicks und Drag&Drop zu verfolgen sollte man allenfalls ein Logging benutzen, das in die Nachrichten nicht eingreift (z.B. OutputDebugString).
Ich würde mal denken, dass das Grid BeginDrag überschreibt. M.E. ist...