AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi abfragen ob mouse button down / EGAL wo die maus gerade ist?
Thema durchsuchen
Ansicht
Themen-Optionen

abfragen ob mouse button down / EGAL wo die maus gerade ist?

Ein Thema von Cylence · begonnen am 14. Feb 2008 · letzter Beitrag vom 14. Feb 2008
Antwort Antwort
Benutzerbild von Cylence
Cylence

Registriert seit: 2. Sep 2004
Ort: Allgäu
246 Beiträge
 
Delphi 7 Enterprise
 
#1

abfragen ob mouse button down / EGAL wo die maus gerade ist?

  Alt 14. Feb 2008, 09:21
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
Tom
Just DO it
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: abfragen ob mouse button down / EGAL wo die maus gerade

  Alt 14. Feb 2008, 09:27
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Cylence
Cylence

Registriert seit: 2. Sep 2004
Ort: Allgäu
246 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: abfragen ob mouse button down / EGAL wo die maus gerade

  Alt 14. Feb 2008, 09:41
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...
Tom
Just DO it
  Mit Zitat antworten Zitat
Benutzerbild von Cylence
Cylence

Registriert seit: 2. Sep 2004
Ort: Allgäu
246 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: abfragen ob mouse button down / EGAL wo die maus gerade

  Alt 14. Feb 2008, 09:43
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
Tom
Just DO it
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: abfragen ob mouse button down / EGAL wo die maus gerade

  Alt 14. Feb 2008, 10:33
Mal so aus dem Kopf, ich bin in der Schule, guck mal, ob dir MSDN-Library durchsuchenSetCapture eventuell weiterhilft. Aber ich glaube, das funktioniert nur, wenn dein Programm aktiv ist.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Cylence
Cylence

Registriert seit: 2. Sep 2004
Ort: Allgäu
246 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: abfragen ob mouse button down / EGAL wo die maus gerade

  Alt 14. Feb 2008, 11:22
Hi,

danke danke, aber ich habs ja schon, (GetAsyncKeyState(1)= 0) funktioniert genau wie ich es will...

Gruß

tom
Tom
Just DO it
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: abfragen ob mouse button down / EGAL wo die maus gerade

  Alt 14. Feb 2008, 15:46
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:
The GetAsyncKeyState function works with mouse buttons. However, it checks on the state of the physical mouse buttons, not on the logical mouse buttons that the physical buttons are mapped to. For example, the call GetAsyncKeyState(VK_LBUTTON) always returns the state of the left physical mouse button, regardless of whether it is mapped to the left or right logical mouse button. You can determine the system's current mapping of physical mouse buttons to logical mouse buttons by calling
GetSystemMetrics(SM_SWAPBUTTON)

which returns TRUE if the mouse buttons have been swapped.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Cylence
Cylence

Registriert seit: 2. Sep 2004
Ort: Allgäu
246 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: abfragen ob mouse button down / EGAL wo die maus gerade

  Alt 14. Feb 2008, 16:14
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
Tom
Just DO it
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz