TSHIFTSTATE
- juelin
 - Beiträge: 326
 - Registriert: Sa 24. Jul 2021, 18:03
 - OS, Lazarus, FPC: Linux Ubuntu 22. Windows 10 Delphi 11.3 (L 0.9.xy FPC 2.2.z)
 - CPU-Target: 64Bit
 - Wohnort: Mannheim
 
TSHIFTSTATE
Hallo schöne Weihnachten alle zusammen,
ich rufe das Ereignis
TFrame4.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
im TImage auf.
Und damit nicht immer diese Warnung
unit6.pas(30,7) Hint: Parameter "Shift" not used
kommt setzte ich folgenden in der Routine Befehl ab
if Shift = ssAlt then ImagePosX:=X; (So steht es in der Onlinehilfe).
Nun kommt aber folgende Fehlermeldung
unit6.pas(199,12) Error: Operator is not overloaded : "TFhiftState = TShiftStateEnum"
Ich habe keine Ahnung warum (steht doch so in der Onlinehilfe).
Hat da jemand eine Idee?
Schöne Restweihnachten noch.
Gruß
Jürgen
			
			
									
									
						ich rufe das Ereignis
TFrame4.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
im TImage auf.
Und damit nicht immer diese Warnung
unit6.pas(30,7) Hint: Parameter "Shift" not used
kommt setzte ich folgenden in der Routine Befehl ab
if Shift = ssAlt then ImagePosX:=X; (So steht es in der Onlinehilfe).
Nun kommt aber folgende Fehlermeldung
unit6.pas(199,12) Error: Operator is not overloaded : "TFhiftState = TShiftStateEnum"
Ich habe keine Ahnung warum (steht doch so in der Onlinehilfe).
Hat da jemand eine Idee?
Schöne Restweihnachten noch.
Gruß
Jürgen
- 
				Warf
 - Beiträge: 2227
 - Registriert: Di 23. Sep 2014, 17:46
 - OS, Lazarus, FPC: Win10 | Linux
 - CPU-Target: x86_64
 
Re: TSHIFTSTATE
TShiftState ist ein Set von TShiftStateEnum (es kann ja mehr als eine taste gleichzeitig gedrückt sein). Korrekt ist also
Übrigens, das was du da bekommst ist keine Warnung sondern ein Hinweis (daher steht da Hint). Warnings sind Sachen die definitiv in manchen Situationen kaputt gehen können. So zu sagen Fehler die nur darauf warten zu passieren. Faustregel, ein Projekt sollte ohne warnings kompilieren.
Hints hingen sind Sachen die keine Fehler per se darstellen, aber potentiell ein Versehen sein können.
Beispiel, man hat eine komplexe Funktion und schreibt sie um sodass sie viel einfacher wird, dann bleiben ein Haufen Parameter und variablen übrig die vorher notwendig waren, in der neuen einfacheren version aber nicht mehr. Dafür sind diese hints da um dich drauf aufmerksam zu machen ob du das wirklich noch brauchst oder es nicht sogar löschen kannst
			
			
													Code: Alles auswählen
ssAlt in ShiftHints hingen sind Sachen die keine Fehler per se darstellen, aber potentiell ein Versehen sein können.
Beispiel, man hat eine komplexe Funktion und schreibt sie um sodass sie viel einfacher wird, dann bleiben ein Haufen Parameter und variablen übrig die vorher notwendig waren, in der neuen einfacheren version aber nicht mehr. Dafür sind diese hints da um dich drauf aufmerksam zu machen ob du das wirklich noch brauchst oder es nicht sogar löschen kannst
					Zuletzt geändert von Warf am Do 26. Dez 2024, 12:29, insgesamt 2-mal geändert.
									
			
									
						Re: TSHIFTSTATE
Wie Warf sagt.
Deshalb kann es gleichzeitig mehrere Status enthalten.
			
			
									
									
						Deshalb kann es gleichzeitig mehrere Status enthalten.
Code: Alles auswählen
{ Types used by standard events }
  TShiftStateEnum = (ssShift, ssAlt, ssCtrl,
    ssLeft, ssRight, ssMiddle, ssDouble,
    // Extra additions
    ssMeta, ssSuper, ssHyper, ssAltGr, ssCaps, ssNum,
    ssScroll,ssTriple,ssQuad,ssExtra1,ssExtra2);  - 
				wennerer
 - Beiträge: 643
 - Registriert: Di 19. Mai 2015, 20:05
 - OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
 - CPU-Target: x86_64-linux-gtk2
 
Re: TSHIFTSTATE
Hallo,
zu dem Thema ist vielleicht auch dies noch interessant:
viewtopic.php?p=142459#p142459
Viele Grüße
Bernd
			
			
									
									
						zu dem Thema ist vielleicht auch dies noch interessant:
viewtopic.php?p=142459#p142459
Viele Grüße
Bernd
Re: TSHIFTSTATE
oder wenn Sie prüfen wollen, ob nur Alt gedrückt wurde, dann
			
			
									
									Code: Alles auswählen
if Shift = [ssAlt] then 
// ...Grüße / Pozdrawiam 
paweld
						paweld
- juelin
 - Beiträge: 326
 - Registriert: Sa 24. Jul 2021, 18:03
 - OS, Lazarus, FPC: Linux Ubuntu 22. Windows 10 Delphi 11.3 (L 0.9.xy FPC 2.2.z)
 - CPU-Target: 64Bit
 - Wohnort: Mannheim
 
[gelöst] Re: TSHIFTSTATE
Ja danke für sie Hinweise.
Habe das Problem schon auf andere Weise gelöst.
Shift:=Shift;
Damit kommt die Warung Shift unused auch nicht mehr.
Alles Gute
Jürgen
			
			
									
									
						Habe das Problem schon auf andere Weise gelöst.
Shift:=Shift;
Damit kommt die Warung Shift unused auch nicht mehr.
Alles Gute
Jürgen
- fliegermichl
 - Lazarusforum e. V.
 - Beiträge: 1700
 - Registriert: Do 9. Jun 2011, 09:42
 - OS, Lazarus, FPC: Lazarus Fixes FPC Stable
 - CPU-Target: 32/64Bit
 - Wohnort: Echzell
 
Re: TSHIFTSTATE
Du kannst aber auch unter Projekt -> Projekteinstellungen -> Compilereinstellungen -> Meldungen die Meldung Hint: Parameter "$1" not used ausschalten.