![]() |
case-Konstrukt vereinfachen - Zahl aus VK_Fx ermitteln
Hallo,
kann man dieses case-Konstrukt etwas vereinfachen?
Delphi-Quellcode:
ich hätt gern etwas in dieser Art:
case Key of
VK_F1: begin MSGButton_click(1); end; VK_F2: begin MSGButton_click(2); end; VK_F3: begin MSGButton_click(3); end; VK_F4: begin MSGButton_click(4); end; VK_F5: begin MSGButton_click(5); end; VK_F6: begin MSGButton_click(6); end; VK_F7: begin MSGButton_click(7); end; VK_F8: begin MSGButton_click(8); end; VK_F9: begin MSGButton_click(9); end; VK_F10: begin MSGButton_click(10); end; end;
Delphi-Quellcode:
Nur dazu müsste ich an die Zahl hinter "VK_F" rankommen
case Key of
VK_F1..VK_F10: begin MSGButton_click(<Nummer der F-Taste>); end; |
AW: case-Konstrukt vereinfachen - Zahl aus VK_Fx ermitteln
Wenn ich es richtig im Kopf habe ist der Wert von VK_F1 70 dann sollte
Delphi-Quellcode:
funktionieren.
case Key of
VK_F1..VK_F10: begin MSGButton_click(key-69); end; |
AW: case-Konstrukt vereinfachen - Zahl aus VK_Fx ermitteln
mmh
auf die Idee hätt ich auch kommen können - einfach die Nummer zurückrechnen ich bin mal der Deklaration von VK_F1 nachgegangen und komm dann bei 112 raus das heisst, es müsste dann lauten "Key - 111" |
AW: case-Konstrukt vereinfachen - Zahl aus VK_Fx ermitteln
Was'n hier los? Genau damit hab ich auch grad zu tun 8-).
MfG Dalai |
AW: case-Konstrukt vereinfachen - Zahl aus VK_Fx ermitteln
Zitat:
|
AW: case-Konstrukt vereinfachen - Zahl aus VK_Fx ermitteln
Aber bitte keine
![]()
Delphi-Quellcode:
Das ist schon verständlicher. Und das Rechnen hättest du dir so auch sparen können ;)
case Key of
VK_F1..VK_F10: MSGButton_click(Key - VK_F1 + 1); end; |
AW: case-Konstrukt vereinfachen - Zahl aus VK_Fx ermitteln
na gut
aber nur weil du es bist :-) |
AW: case-Konstrukt vereinfachen - Zahl aus VK_Fx ermitteln
Na, Gott Sei Dank ist VK_F[x+1] immer gleich VK_Fx + 1, denn wenn sich das mal ändert, oder auf anderen Systemen mal nicht so ist, würde das zu einem wirklich schwer zu findenden Fehler führen.
Ich würde die 'Formel' Key-VK_F1+1 noch in eine separate Funktion packen. Dann ist das noch dokumentiert.
Delphi-Quellcode:
Wie immer: Geschmacksache.
Function VirtualKeyToFunctionNumber (aKey : Cardinal) : Integer;
Begin Result := aKey - VK_F1 + 1; End; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 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