![]() |
Welcher MouseButton status?
Hi
In Vb wird beim FormMouseMove ereignis der status des Button direkt übergeben bei Delphi leider nicht dort ist es anstelle von Button Sender. Wie kann ich in erfahrung bringen (übergeben) welcher status der MouseButton zur zeit hat?
Delphi-Quellcode:
Hier 'ControlMouseMove' möchte ich dann den übergebenen status auswerten.
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
Var Button : TMouseButton; begin ControlMouseMove(Image1, Button, Shift, X, Y) end;
Delphi-Quellcode:
Gruss Emil
procedure ControlMouseMove(aCtrl : TObject;
Button : TMouseButton; Shift : TShiftState; X : Integer; Y : Integer); if Button = mbLeft then |
Re: Welcher MouseButton status?
|
Re: Welcher MouseButton status?
Zitat:
EDIT: Das hilft mir nicht weiter!
Delphi-Quellcode:
So wie hier ist ja meine procedure aufgebaut..
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); begin Da gibt es auch unterschiede zwischen
Delphi-Quellcode:
Und so möchte ich den button status übergeben(initialisieren)
Button: TMouseButton; Shift: TShiftState
Warum ich für den status Button nun Shift verwerten soll ? Keine Ahnung. Button ist Button und Shift ist Shift. Oder ? gruss |
Re: Welcher MouseButton status?
:evil: Du sollst es ja mal durchlesen! :warn:
Zitat:
Delphi-Quellcode:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); begin if ssleft in shift then showmessage('Linke Maustaste gedrückt!'); end; |
Re: Welcher MouseButton status?
Zitat:
Und gelesen habe ich es schon ;) Ich benötige den TMouseButton status und nicht den des TShiftState. Oder habe ich hier ..
Delphi-Quellcode:
den Button als TShiftState deklariert ?
procedure ControlMouseMove(aCtrl : TObject;
Button : TMouseButton; Shift : TShiftState; X : Integer; Y : Integer); gruss Emil |
Re: Welcher MouseButton status?
Ja und? Willst du programmieren?
Delphi-Quellcode:
Leider verlierst du mit der Variante von TMousebutton Informationen, die in TShiftstate noch enthalten sind. Du weist dann nicht mehr, ob mehrere Tasten gleichzeitig gedrückt wurden. (Aber du gibst ja Shift noch weiter mit)
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); var mb:tmousebutton; begin if ssleft in shift then mb:=mbleft; if ssright in shift then mb:=mbright; if ssmiddle in shift then mb:=mbmiddle; ControlMouseMove(Form1, mb, Shift, X, Y); end; |
Re: Welcher MouseButton status?
Was verstehst du denn unter "Status des Mousebuttons"?
|
Re: Welcher MouseButton status?
Zitat:
Denke mal erklärt sich von selbst. Oder muss ich das jetzt erklären ? gruss Emil |
Re: Welcher MouseButton status?
Zitat:
Extrem umständlich wenn ich bedenke das der Button status bei VB im FormMouseMove ereignis schon enthalten ist. Um was es mir dabei geht siehe hier ![]() gruss Emil |
Re: Welcher MouseButton status?
Wieso umständlich?
VB macht genau dasselbe nur eine Funktion weiter vorher. Die Message die von Windows kommt, ist ja bei beiden dasselbe und in der sind die Zustände der Maustasten und dieser "Funktions"-Tasten bitweise in einem integer enthalten. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:24 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