Announcement

Collapse
No announcement yet.

Mouse und TUpDown

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

  • Mouse und TUpDown

    Hallo zusammen!

    Ich bin hier einigermassen ratlos:

    Ich möchte bei einer Änderung des mit TUpDown verbundenen Wertes eine Abfrage starten. Dazu habe ich einen MessageDlg in das Ereignis OnChangingEx gesteckt. Der wird auch ordnungsgemäß aufgerufen. Sobald das passiert ist, fängt der UpDown die Maus, es wird immer einer der beiden Buttons betätigt und es bleibt einem nur noch der Taskmanager zum töten des ganzen.

    Warum passiert das? Und wie kann man das unterbinden? Mit SetCaptureControl kann man jedenfalls nichts ausrichten. Interessant ist auch, das GetCaptureControl eine Zugriffsverleztung nach sich zieht.

    Noch ein wenig code dabei:

    <PRE>
    type
    TForm1 = class(TForm)
    m_Test: TEdit;
    m_UpDown: TUpDown;
    procedure m_UpDownChangingEx(Sender: TObject; var AllowChange: Boolean;
    NewValue: Smallint; Direction: TUpDownDirection);
    end;

    var
    Form1: TForm1;

    implementation

    {$R *.dfm}

    procedure TForm1.m_UpDownChangingEx(Sender: TObject;
    var AllowChange: Boolean; NewValue: Smallint;
    Direction: TUpDownDirection);
    begin
    MessageDlg('Die Maus gehört mir!', mtconfirmation, [mbyes, mbno], 0);
    end;
    </PRE>

    Irgendwelche Ideen?

    Grüße

    Julia

  • #2
    hallo,

    warum das passiert, weiss ich immer noch nicht, aber es gibt eine Lösung:

    PostMessage(Handle, WM_LBUTTONDOWN, MK_LBUTTON, 0);<BR>
    PostMessage(Handle, WM_LBUTTONUP, MK_LBUTTON, 0);

    Wenn die Maus im Nirwana weilt, muss man sie eben mit Gewalt auf den Boden der Tatsachen (oder die Oberfläche des Forms) zurückholen...

    Trotzdem nicht schön.

    Grüße

    Juli

    Comment

    Working...
    X