![]() |
Tastatur --> Shift --> alle eventualitäten
Hallo,
ich wollte nur mal nachfragen, ob ich bei folgenden Code alle eventualitäten berücksichtigt habe.
Delphi-Quellcode:
MFG Christian18
if Shift = [ssShift] then Label5.Caption:='Shift';
if Shift = [ssAlt] then Label5.Caption:='Alt'; if Shift = [ssCtrl] then Label5.Caption:='Strg'; if Shift = [ssShift, ssAlt] then Label5.Caption:='Shift + Alt'; if Shift = [ssShift, ssCtrl] then Label5.Caption:='Shift + Strg'; if Shift = [ssAlt, ssCtrl] then Label5.Caption:='Alt + Strg'; if Shift = [ssShift, ssAlt, ssCtrl] then Label5.Caption:='Shift + Alt + Strg'; |
Re: Tastatur --> Shift --> alle eventualitäten
Hi,
wie wärs mit
Delphi-Quellcode:
Das sollte wirklich alles abdecken ;)
var
str: string; begin str := ''; if ssShift in Shift then str := str + 'Shift + '; if ssCtrl in Shift then str := str + 'Strg + '; if ssAlt in Shift then str := str + 'Alt + '; if Length(str) > 0 then Delete(str, Length(str) - 2, 2); mfG mirage228 |
Re: Tastatur --> Shift --> alle eventualitäten
eine frage mal bei meiner Version. wenn ich die Taste AltGr drücke, dann wird Strg + Alt angezeigt ist das richtig, oder habe ich da einen Programmierfehler gemacht???
|
Re: Tastatur --> Shift --> alle eventualitäten
Hallo,
@Christian18: Da ist alles drin. AltGr ist eine Kombination aus Alt + Strg. Da ist also alles in Ordnung. Hier noch meine Lösung:
Delphi-Quellcode:
Wer schafft weniger if-Abfragen :stupid: ?
var
Caption, Add: String; begin Caption := ''; Add := ''; if ssShift in Shift then begin Caption := 'Shift; Add := ' + '; end; if ssAlt in Stift then begin Caption := Caption + Add + 'Alt'; Add := ' + '; end; if ssStrg in Stift then Caption := Caption + Add + 'Strg'; Label5.Caption := Caption; end; Gruß xaromz |
Re: Tastatur --> Shift --> alle eventualitäten
Zitat:
Delphi-Quellcode:
greetz
function ShiftStateToString(s: TShiftState): string;
const Shifts: array[0..2] of TShiftState = ([ssAlt], [ssShift], [ssCtrl]); strings: array[0..2] of string = ('Alt', 'Shift', 'Control'); formatStrings: array[boolean] of string = ('', '%s + '); var i: byte; begin result := ''; for i := 0 to 2 do result := result + format(formatStrings[(Shifts[i] * s) <> []], [strings[i]]); delete(result, length(result) - 2, 2); end; Mike |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:36 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