AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Welcher MouseButton status?

Ein Thema von EWeiss · begonnen am 18. Jun 2007 · letzter Beitrag vom 18. Jun 2007
Antwort Antwort
Seite 1 von 2  1 2      
EWeiss
(Gast)

n/a Beiträge
 
#1

Welcher MouseButton status?

  Alt 18. Jun 2007, 17:21
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:
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
Var
  Button : TMouseButton;
begin
  ControlMouseMove(Image1, Button, Shift, X, Y)
end;
Hier 'ControlMouseMove' möchte ich dann den übergebenen status auswerten.

Delphi-Quellcode:
procedure ControlMouseMove(aCtrl : TObject;
                           Button : TMouseButton;
                           Shift : TShiftState;
                           X : Integer;
                           Y : Integer);

if Button = mbLeft then
Gruss Emil
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#2

Re: Welcher MouseButton status?

  Alt 18. Jun 2007, 17:29
Hallo,

schau Dir mal die Hilfe zu Delphi-Referenz durchsuchenTShiftState an.

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

Re: Welcher MouseButton status?

  Alt 18. Jun 2007, 17:30
Zitat von xaromz:
Hallo,

schau Dir mal die Hilfe zu Delphi-Referenz durchsuchenTShiftState an.

Gruß
xaromz
OkiDoki

EDIT:
Das hilft mir nicht weiter!

Delphi-Quellcode:
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
So wie hier ist ja meine procedure aufgebaut..
Da gibt es auch unterschiede zwischen
Button: TMouseButton; Shift: TShiftState Und so möchte ich den button status übergeben(initialisieren)
Warum ich für den status Button nun Shift verwerten soll ? Keine Ahnung.
Button ist Button und Shift ist Shift. Oder ?


gruss
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Welcher MouseButton status?

  Alt 18. Jun 2007, 17:57
Du sollst es ja mal durchlesen!

Zitat:
ssShift Die Taste Umschalt wird gedrückt gehalten.
ssAlt Die Taste Alt wird gedrückt gehalten.
ssCtrl Die Taste Strg wird gedrückt gehalten.
ssLeft Die linke Maustaste wird gedrückt gehalten.
ssRight Die rechte Maustaste wird gedrückt gehalten.
ssMiddle Die mittlere Maustaste wird gedrückt gehalten.
ssDouble Es wurde mit der Maus doppelgeklickt.
Delphi-Quellcode:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if ssleft in shift then showmessage('Linke Maustaste gedrückt!');
end;
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

Re: Welcher MouseButton status?

  Alt 18. Jun 2007, 18:14
Zitat von sirius:
Du sollst es ja mal durchlesen!

Zitat:
ssShift Die Taste Umschalt wird gedrückt gehalten.
ssAlt Die Taste Alt wird gedrückt gehalten.
ssCtrl Die Taste Strg wird gedrückt gehalten.
ssLeft Die linke Maustaste wird gedrückt gehalten.
ssRight Die rechte Maustaste wird gedrückt gehalten.
ssMiddle Die mittlere Maustaste wird gedrückt gehalten.
ssDouble Es wurde mit der Maus doppelgeklickt.
Delphi-Quellcode:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if ssleft in shift then showmessage('Linke Maustaste gedrückt!');
end;
Wir reden aneinander vorbei.
Und gelesen habe ich es schon

Ich benötige den TMouseButton status und nicht den des TShiftState.

Oder habe ich hier ..
Delphi-Quellcode:
procedure ControlMouseMove(aCtrl : TObject;
                           Button : TMouseButton;
                           Shift : TShiftState;
                           X : Integer;
                           Y : Integer);
den Button als TShiftState deklariert ?

gruss Emil
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Welcher MouseButton status?

  Alt 18. Jun 2007, 18:30
Ja und? Willst du programmieren?

Delphi-Quellcode:
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;
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)
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Welcher MouseButton status?

  Alt 18. Jun 2007, 18:38
Was verstehst du denn unter "Status des Mousebuttons"?
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#8

Re: Welcher MouseButton status?

  Alt 18. Jun 2007, 18:48
Zitat von inherited:
Was verstehst du denn unter "Status des Mousebuttons"?
Hmmm...
Denke mal erklärt sich von selbst.
Oder muss ich das jetzt erklären ?

gruss Emil
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#9

Re: Welcher MouseButton status?

  Alt 18. Jun 2007, 18:51
Zitat von sirius:
Ja und? Willst du programmieren?

Delphi-Quellcode:
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;
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)
Jo danke
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 http://www.delphipraxis.net/internal...=738660#738660

gruss Emil
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Welcher MouseButton status?

  Alt 18. Jun 2007, 18:57
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.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 12:20 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