Entwickler-Ecke

Sonstiges (Delphi) - Abfrage des Shiftstate, wie?


mega - So 10.04.05 19:25
Titel: Abfrage des Shiftstate, wie?
Abfrage des Shiftstate, wie?

Hallo, wie läßt sich der Shiftstate abfragen?

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.StringGrid1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var
  
begin
 
if Shift = ssLeft then tuwas();
end;

Die if ergibt einen 308 Inkompatibel Typen

mit 'ssleft' und "ssLeft" geht es auch nicht. Aber das Ding ist ja irgenwie zum Abfragen gedacht...

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


Holgerwa - So 10.04.05 21:18

Hallo,

Shift ist ein Set, versuchs mal mit

Delphi-Quelltext
1:
if ssLeft IN Shift then Tuwas;                    

Holger


StefanH - Mo 11.04.05 15:52

Die Delphi-Hilfe verrät uns zu TShiftState folgendes:

Zitat:
Der Typ TShiftState gibt den Status der Tasten Alt, Strg und Umschalt sowie der Maustasten an.

Unit

Classes

type TShiftState = set of (ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDouble);

Beschreibung


TShiftState wird von den Behandlungsroutinen für Tastatur- und Mausereignisse verwendet, um bei Auftreten eines Ereignisses den Status der Tasten Alt, Strg und Umschalt sowie der Maustasten zu ermitteln. Folgende Werte sind möglich:

Wert Bedeutung

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.


=> if ssShift in Shift then somefoo();