![]() |
abfragen ob mouse button down / EGAL wo die maus gerade ist?
Hi,
ich habe eine sidebar programmiert, und für diese hätte ich es gerne das - wenn man am rand des bildschirms zb im explorer oder irgendeinem programm egal welches scrollt mit der maus, oder ein fenster verschiebt, die sidebar nicht ausfährt, weil eben ein button gedrückt ist von der maus, und die sidebar nur ausfährt wenn kein mausbutton gedrückt ist. ich hoffe ihr versteht was ich meine. Also wie kann ich ermitteln ob ein mousebutton gedrückt ist, völlig unabhängig von der mauseposition und auch wenns eben nicht über meiner form ist. Ist das möglich? Ich habe schon einmal if (not mouse.isdragging) versucht aber das funktioniert leider nicht... gibts es etwas derartiges? Hoffe mir kann jemand helfen... Tom |
Re: abfragen ob mouse button down / EGAL wo die maus gerade
mir ist keine Methode bekannt außer einen Hook zu verwenden. Du wirst zum Beispiel auch in einem Programm nie ein MouseUp bekommen wenn vorher kein MouseDown da war. Zumindest sind das meine Erfahrungen.
|
Re: abfragen ob mouse button down / EGAL wo die maus gerade
nein das will ich ja auch garnich, in dre sidebar ist ein timer der abfragt ob die maus am rand des bidlschirms is und wenn ja dann wird die sidebar eben ausgefahren. Aber wenn eben ein mausbutton down ist, dann soll ja die sidebar nich ausgefahren werden, weil sie dann ja garnich gewollt ist in dem moment, ich hab eben nochwas gefunden funzt aber auch nich...
Delphi-Quellcode:
if ((Mous.X > (Screen.Width -2)) And (Playlistform.Left = Screen.Width)) then SlideNOWTimer.Enabled := True;
if ((Mous.X < (Screen.Width -(Playlistform.ClientWidth))) AND (Playlistform.Left = (Screen.Width -(Playlistform.ClientWidth)))) then begin if (not Popupopen) and [b](GetKeyState(1)= 0)[/b] then begin SlideNOWTimer.Enabled := True; Exit; end; end; das getkeystate(1) soll angeblich den zustand des mousebuttons angeben 0 nicht pressend 1 pressed, geht aber auch nich... |
Re: abfragen ob mouse button down / EGAL wo die maus gerade
ok ich dämlich, habs an der falschen stelle eingebaut, also genau so gehts tatsächlich...
(GetKeyState(1)= 0) sagt mir button is nich down also los gehts... noch besser ist: (GetAsyncKeyState(1)= 0) und beim start der function/Prozedur einmal GetAsyncKeyState(1) falls es mal jemand braucht so klappts jetzt bei mir |
Re: abfragen ob mouse button down / EGAL wo die maus gerade
Mal so aus dem Kopf, ich bin in der Schule, guck mal, ob dir
![]() |
Re: abfragen ob mouse button down / EGAL wo die maus gerade
Hi,
danke danke, aber ich habs ja schon, (GetAsyncKeyState(1)= 0) funktioniert genau wie ich es will... Gruß tom |
Re: abfragen ob mouse button down / EGAL wo die maus gerade
warum eigentlich GetAsyncKeyState und nicht GetKeyState? Ich dachte so ein Verhalten wie bei AsyncKeyState ist genau das was du nicht willst.
Anstelle der 1 wäre es auch besser du verwendest die entsprechenden Konstanten (VK_LBUTTON,...) und vor allem diesen Absatz aus der Hilfe beachten! Zitat:
|
Re: abfragen ob mouse button down / EGAL wo die maus gerade
Hi,
ich hab es einmal mit GetKeyState versucht und da scheint es nich immer auf dem aktuellen stand zu sein, ich hab auch was gelesen das das nur angibt ob die taste seit dem letzten mal gedrückt wurde oder so ähnlich hat damit jedenfalls nich richtig funktioniert... Mit GetAsyncKeyState klappts jetzt wunderbar genau das verhalten das ich wollte, die sidebar fährt nur noch aus, wenn die maustaste nicht gedrückt ist. und das is ja das verhalten was ich wollte. so das wenn man eben zb in nem anderen fenster rumscrollt oder ein fenster verschiebt oder so. die sidebar nicht reagiert. Naja und das ich einfach 1 nimm kommt denk ich aufs selbe raus weil VK_LBUTTON ist ja 1 also machts keinen unterschied eigentlich... ich hatte das halt so gefunden online irgendwo...darum hab ichs mal so gepostet hier. Is denk ich aber auch nicht falsch so. ok aber das andere was du mir noch geschrieben hast werde ich noch einbauen, ich kenn zwar niemand der die buttons vertauscht hat, aber das kann ich ja noch mit einbauen. Danke Dir für Deine Info. Gruß tom |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:59 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