AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi case-Konstrukt vereinfachen - Zahl aus VK_Fx ermitteln
Thema durchsuchen
Ansicht
Themen-Optionen

case-Konstrukt vereinfachen - Zahl aus VK_Fx ermitteln

Ein Thema von Helmi · begonnen am 17. Jan 2015 · letzter Beitrag vom 17. Jan 2015
Antwort Antwort
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#1

case-Konstrukt vereinfachen - Zahl aus VK_Fx ermitteln

  Alt 17. Jan 2015, 16:01
Hallo,

kann man dieses case-Konstrukt etwas vereinfachen?
Delphi-Quellcode:
      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;
ich hätt gern etwas in dieser Art:

Delphi-Quellcode:
      case Key of
        VK_F1..VK_F10: begin
                          MSGButton_click(<Nummer der F-Taste>);
                        end;
Nur dazu müsste ich an die Zahl hinter "VK_F" rankommen
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: case-Konstrukt vereinfachen - Zahl aus VK_Fx ermitteln

  Alt 17. Jan 2015, 16:09
Wenn ich es richtig im Kopf habe ist der Wert von VK_F1 70 dann sollte
Delphi-Quellcode:
case Key of
        VK_F1..VK_F10: begin
                          MSGButton_click(key-69);
                        end;
funktionieren.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#3

AW: case-Konstrukt vereinfachen - Zahl aus VK_Fx ermitteln

  Alt 17. Jan 2015, 16:18
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"
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#4

AW: case-Konstrukt vereinfachen - Zahl aus VK_Fx ermitteln

  Alt 17. Jan 2015, 16:48
Was'n hier los? Genau damit hab ich auch grad zu tun .

MfG Dalai
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#5

AW: case-Konstrukt vereinfachen - Zahl aus VK_Fx ermitteln

  Alt 17. Jan 2015, 16:53
Was'n hier los? Genau damit hab ich auch grad zu tun .
Bazinga!
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#6

AW: case-Konstrukt vereinfachen - Zahl aus VK_Fx ermitteln

  Alt 17. Jan 2015, 17:00
Aber bitte keine Magic Numbers.
Delphi-Quellcode:
case Key of
  VK_F1..VK_F10: MSGButton_click(Key - VK_F1 + 1);
end;
Das ist schon verständlicher. Und das Rechnen hättest du dir so auch sparen können
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#7

AW: case-Konstrukt vereinfachen - Zahl aus VK_Fx ermitteln

  Alt 17. Jan 2015, 17:10
na gut

aber nur weil du es bist
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#8

AW: case-Konstrukt vereinfachen - Zahl aus VK_Fx ermitteln

  Alt 17. Jan 2015, 20:34
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:
Function VirtualKeyToFunctionNumber (aKey : Cardinal) : Integer;
Begin
  Result := aKey - VK_F1 + 1;
End;
Wie immer: Geschmacksache.

Geändert von Dejan Vu (17. Jan 2015 um 20:38 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz