Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Key Problem: ssCtrl und key
J.Borchert - Do 30.06.05 11:00
Titel: Key Problem: ssCtrl und key
Habe einfach Scheuklappen, wie lese ich Tastenkombis?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TForm1.sg1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); var i:integer; f:file; begin if Key = vk_RETURN then begin BeiEnterAufCol1; Key := 0; end; if Key = vk_F3 then rechne(sg1); if Key = vk_F6 then begin Sortiere(sg1);Hilfe('Tabelle ist aufsteigend');end; if (ssCtrl in Shift)and(key = vk_Left) then AlleNachLinks; if (ssCtrl in Shift)and(key = vk_Right) then AlleNachRechts; if (ssAlt in Shift)and(key = vk_Next ) then WertNachUnten; if (ssCtrl in Shift)and(key = ord('e') ) then EditModus; end; |
Also zu Problem 1: Die normale Funktion "Seite runter" im StringGrid (sg1) wird auch ausgeführt (soll nicht)
zu Problem 2: ord('e') scheint nicht zu funktionieren, wenn ich Key ausgebe, ist Key=17 warum ?
( würde gern auf die Tastenkombi Strg+e reagieren )
mfG Jürgen
jaenicke - Do 30.06.05 11:09
Zu deinem Problem 1: Einfach
nach deinem Code hinschreiben, wenn das nicht weiter behandelt werden soll.
Zu dem anderen Problem: Wie wärs mit THotKey?
Soll der Hotkey global im System sein, nimm folgenden Code:
http://www.swissdelphicenter.ch/de/showcode.php?id=2375
Und außerdem gibts in der JEDI Sammlung TJvApplicationHotKey oder so ähnlich, das gilt dann nur für deine Anwendung...
J.Borchert - Do 30.06.05 11:23
Strg+e soll nur beim Bearbeiten des StringGrids eine Funktion ausführen.
Zitat: |
Die meisten virtuellen Tastencodes sind in der Unit Windows definiert. Weitere Tastencodes sind in speziellen Windows-Wrappern (z. B. Unit imm) definiert. Verwenden Sie bei alphabetischen Tasten ord zusammen mit einem Großbuchstaben, wie beispielsweise ord( 'M' ).
Mit der Methode Ord kann ein virtueller Tastencode für einen alphanumerischen Wert erzeugt werden. Ord(‘7’) liefert beispielsweise den virtuellen Tastencode für die Ziffer 7.
|
So stehts in der Online-Hilfe unter virtuelle Tastencodes aber mein ord funktioniert trotzdem nicht.
Problem 1 ist gelöst, danke.
mfG Jürgen
J.Borchert - Do 30.06.05 11:26
Habe selbst gelesen und gelöst: das ord('e') funzt nur wenn ord('E') ist.
Danke mfG Jürgen
jaenicke - Do 30.06.05 11:32
Hinweis:
Ord('E') = Ord('e') - Ord('a') + Ord('A') = Ord('e') - 32
Grund:
Ord('A') = 65
Ord('a') = 97
Und von da wird jeweils hochgezählt...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!