Announcement

Collapse
No announcement yet.

OnMouseMove/OnMouseUP - wie richtig?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • OnMouseMove/OnMouseUP - wie richtig?

    Hallo,

    Ich komm nicht ganz klar mit diesen beiden Erreignissen.

    Mal kurz erklärt was ich eigentlich erreichen möchte.

    Ich hab die Komponente TBitBtn etwas angepasst weil ich Sie auf einem TPanel dynamisch erzeugen möchte und verschieben möchte (Planungstafel).
    Nun soll der User durch anklicken und Mausbutten gedrückthalten dieses Label verschieben können und sobald er losläßt soll an Hand der X Werte eine StoredProc mit dem neuem Startwert gefüttert werden und den dazugehörigen Datensatz entsprechend abändern.

    So weit so gut. Ich kann mit
    <PRE>
    releaseCapture;
    TWinControl(sender).Perform(WM_SYSCOMMAND,SC_MOVE+ 2,0);
    </PRE>
    den Button hin und herschieben. Aber ich bekomme nicht mit wenn der MousBttn losgelassen wird. Dieses Ereignis wird einfach nicht ausgelöst bzw. dur releaseCapture gelöscht.
    Habs dann so probiert:
    <PRE>
    TWinControl(Sender).Perform(WM_LBUTTONUP,0,0);
    TWinControl(sender).Perform(WM_SYSCOMMAND,SC_MOVE+ 2,0);
    </PRE>

    Das wiederum führt dazu das das Ereignis OnMouseUp schon beim überfahren mit der Mouse ausgelöst wird obwohl noch keine Taste gedrückt wurde.

    Irgendwie ist da ein Knopf in meiner Leitung.
    Vielleicht hat von Euch einer eine Idee wie es richtig geht.

    LG
    Peter

  • #2
    Die wm_SysCommand Message kehrt erst zurück wenn die Verschiebeaktion beendet wurde. Dein Code um die DB zu aktualiseren kannste also direkt hinter das .Perform(wm_SysCommand, ...) setzen.

    Gruß Hage

    Comment

    Working...
    X