![]() |
OnMouseDown Ereignis
Hi,
ich habe eine Image-Komponente und ein OnMouseDown Ereignis. Ich möchte jetzt, dass das Ereignis auftritt, wenn ich die Maus drücke, aber auch, wenn ich sie dann weiter gedrückt halte. Wie kann ich das machen? Gruß Yheeky |
Moin Yheeky,
such mal hier im Forum nach GetAsyncKeyState. Vielleicht ist der Code dort was für Dich. |
Hi Christian,
yo danke. Ich bin fündig geworden jedoch funktioniert das nicht so, wie ich gerne möchte. Kann man dabei vielleicht noch die Geschwindigkeit beeinflussen, da das Verarbeiten des Ereignisses jetzt viel zu schnell verläuft (ich möchte ein scrollen via Bild ermöglichen, aber jetzt gelangt die ListBox bereits mit einem klick ans Ende und das soll nicht sein). Vielleicht kann mir dabei ja noch jemand helfen. Gruß Yheeky |
Moin Yheeky,
dann mach das Ganze doch nicht im OnMouseDown, sondern im OnMouseMove. Da kannst Du auch direkt den ShiftState abfragen, also ob denn nun die Linke Taste gedrückt ist oder nicht, und entsprechend reagieren. |
Aber ich möchte das ja nicht bei MouseMove machen - sprich nur wenn sich die Maus bewegt. Außerdem gibt´s die die Möglichkeit mit "Shift" die Maustaste abzufragen auch im OnMouseDown-Ereignis.
Gruß Yheeky |
Moin Yheeky,
jetzt hab' ich's hoffentlich verstanden. ;-) Du willst solange Scrollen, wie die linke Taste gedrückt ist, ohne die Maus zu bewegen. (oder?) Dann wirst Du wohl nur noch eine Verzögerung in die Schleife einbauen müssen, die Dir zu schnell läuft und gut. In der Object Pascal Library haben wir dafür ein Beispiel von Luckie. |
Aha...wo da genau? Hab´s bisher noch nicht gefunden.
|
|
Achso da...ich habe woanders gesucht - nicht in der Library :lol:
Danke! Werde es gleich mal ausprobieren. Gruß Yheeky |
Ich weiss nicht, aber irgendwie will das nicht so funktionieren wie ich das gerne möchte.
Code:
So geht´s nicht. Wie gesagt möchte ich ein Scrollen realisieren. Der Anfangswert und der Endwert soll neu gesetzt werden und mit dem Buttonklick soll die ListBox neu gezeichnet werden.
repeat
delay(2000); if Anfang < 0 then begin Anfang := Anfang +1; Ende := Ende +1; Button1.Click; end; until GetAsyncKeyState(VK_LBUTTON) = 0; end; Sorry, mir fällt im Moment nichts dazu ein, aber vielleicht kann mir ja jemand helfen. Gruß Yheeky |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz