Entwickler-Ecke

Sonstiges (Delphi) - wieso ssleft in shift?


Tilo - Mi 25.05.05 16:03
Titel: wieso ssleft in shift?
Ich möchte am Freitag meinen Mitschüler ein Programm erläutern.
Ich verwende im Programm OnMouse Ereignisse.
MEine Frage ist weiso heist es z.b.

Delphi-Quelltext
1:
 if ssleft in shift then anweisung                    

und nicht

Delphi-Quelltext
1:
 if shift.ssleft then anweisung                    

?

Moderiert von user profile iconTino: Code- durch Delphi-Tags ersetzt.


JRegier - Mi 25.05.05 16:07
Titel: Re: wieso ssleft in shift?
Das heißt die Anweisung wird ausgeführt wenn die Linke Maustaste gedrückt ist! Der procedur wird der Parameter TShiftState übergeben und TShiftState ist ein Objecttyp TShiftState = (ssLeft, ssMiddle, ssRight) und mit dem in ssLeft kann man auch fragen in [ssLeft..ssMiddle] dann wird die Anweisung ausgeführt wenn Linke oder Mittlere Taste gedrückt wird! oder wenn in [ssLeft..ssRight] dann beliebige Taste!

Wobei das mit "ssMiddle" weiß ich nicht ob es so heißt ich bin auch neu in Delphi!

Moderiert von user profile iconTino: Delphi-Tags hinzugefügt und überflüssige Zeilenumbrüche entfernt.


BenBE - Mi 25.05.05 21:21
Titel: Re: wieso ssleft in shift?
user profile iconJRegier hat folgendes geschrieben:
TShiftState ist ein Objecttyp TShiftState = (ssLeft, ssMiddle, ssRight)

Stimmt so nicht ganz:


Classes.pas
 
83:
84:
{ ... }
  TShiftState = set of (ssShift, ssAlt, ssCtrl,
    ssLeft, ssRight, ssMiddle, ssDouble);


D.h. TShiftState is ein Set von Elementen und kein Record.


Tilo - Do 26.05.05 14:33

Und weil "set of" muss das über "in" abgefragt werden?
Wozu dder BEfhl gut ist habe ich schon rausgefunden, ich wollte nur wissen ob es einen besonderen Grund gibt für diese spezielle Abfrage.


Heiko - Do 26.05.05 15:28

Des wegen nicht.
Es hat einen ganz einfachen Grund.
- mit in fragst du ab, ob das Element gerade in der Menge drin ist oder nicht
- mit einem vergleich fragst du ab, ob genau nur das drin ist, und nichts merh oder weniger.


Tilo - Do 26.05.05 20:10

Danke für die Erklärung Heiko!