Autor |
Beitrag |
Airtrox
      
Beiträge: 109
Delphi 7
|
Verfasst: Mi 09.09.09 15:47
Hey,
ich will in meinem Memo die Tasten neu zuweisen. Klickt der Benutzer also auf der Tastatur z.B. auf "A" soll "X" erscheinen, bzw. ein anderes Zeichen.
Könntet ihr mir evt. helfen, wie ich dass mit OnKeyPress lösen kann, also wie ich herausfinden kann, welche Taste gedrückt wurde, um die eingabe dann zu ändern?
lg
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mi 09.09.09 16:01
Moin!
Airtrox hat folgendes geschrieben : | wie ich dass mit OnKeyPress lösen kann, also wie ich herausfinden kann, welche Taste gedrückt wurde |
Ähm...  Delphi-Quelltext 1:
| procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char); |
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Mi 09.09.09 19:05
Bei OnKeyPress sind Buchstaben überhaupt kein Problem, denn wie Narses schon angedeutet hat:
Delphi-Quelltext 1: 2: 3: 4:
| procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char); begin ShowMessage(Key); end; |
Möchtest du andere Tasten abfragen, kannst du entweder in der Delphi-Hilfe nachschauen oder einfach ausprobieren:
Delphi-Quelltext 1:
| ShowMessage(IntToStr(Ord(Key)); |
Das gibt dir den Tastencode aus. Den kannst du später per case-Verschachtelung mit Ord(Key) vergleichen. 
|
|
ssb-blume
      
Beiträge: 375
Erhaltene Danke: 7
XP, W7, W8
Deutschland
|
Verfasst: Do 10.09.09 09:53
Wenn die eingegebenen Daten aber weiter gehgeben werden sollen:
OnKeyDown.. verwenden!
Darin den Wert "Key" beliebig ändern und fertig.
Hanis
_________________ Brain: an apparatus with which we think we think.
|
|
thepaine91
      
Beiträge: 763
Erhaltene Danke: 27
Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
|
Verfasst: Do 10.09.09 10:10
Ich bezweifel das es funktioniert den Key Wert zu ändern. Bzw. funktioniert zwar hat aber keine Auswirkung.
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 10.09.09 10:29
Doch, genau so ist das gedacht. Dass man die gedrückte Taste verändern kann...
Zum Beispiel kann man die einfach auf das Nullzeichen setzen, dann passiert auch nix.
|
|
thepaine91
      
Beiträge: 763
Erhaltene Danke: 27
Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
|
Verfasst: Do 10.09.09 10:53
Komisch das es bei mir nicht ging. ^^
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 10.09.09 11:20
thepaine91 hat folgendes geschrieben : | Komisch das es bei mir nicht ging. ^^ | Dann hast du etwas falsch gemacht. Auch wenn man in der einen Zeile eigentlich ja nix falsch machen kann...
// EDIT:
Ok, das hatte ich falsch verstanden, tut mir leid. (Demo wieder entfernt)
Zuletzt bearbeitet von jaenicke am Do 10.09.09 11:30, insgesamt 2-mal bearbeitet
|
|
thepaine91
      
Beiträge: 763
Erhaltene Danke: 27
Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
|
Verfasst: Do 10.09.09 11:27
ss-blume hat folgendes geschrieben: | Wenn die eingegebenen Daten aber weiter gehgeben werden sollen:
OnKeyDown.. verwenden!
Darin den Wert "Key" beliebig ändern und fertig.
Hanis thepaine91 hat folgendes geschrieben: | Ich bezweifel das es funktioniert den Key Wert zu ändern. Bzw. funktioniert zwar hat aber keine Auswirkung. |
|
Jaenicke schön und gut du hast es aber im Key press gemacht. Ich redete vom OnKeyDown und da geht es bei mir nicht im KeyPress funktioniert es bei mir auch......
Beim nächstenmal auch Lesen worauf ich mich beziehe....
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 10.09.09 11:46
Tja, was ein kleines Wörtchen wie "var" nicht alles ausmachen kann 
|
|
thepaine91
      
Beiträge: 763
Erhaltene Danke: 27
Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
|
Verfasst: Do 10.09.09 12:53
DeddyH das kleine Wörtchen var steht aber in beiden Routinen vor dem Key. 
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 10.09.09 13:53
Aber es sind unterschiedliche Datentypen für unterschiedliche Tasten. Vielleicht ist ja dieser Artikel oder dieser Thread hilfreich.
|
|
thepaine91
      
Beiträge: 763
Erhaltene Danke: 27
Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
|
Verfasst: Do 10.09.09 13:56
Deddyh ich wollte dich nur daraufhinweisen das es nicht am var liegt. Hilfe brauch ich dies bezüglich nicht wirklich...
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 10.09.09 14:05
|
|
Airtrox 
      
Beiträge: 109
Delphi 7
|
Verfasst: Do 10.09.09 14:45
Hat vielleicht noch jemand eine Lösung hierfür:
Ich möchte mit der case Anweisung alle Buchstaben neuzuweisen:
Delphi-Quelltext 1: 2: 3:
| case key of 'a': memo1.lines.add(edit1.text); end; |
Gleichzeitig soll aber 'a' nicht mehr im memo erscheinen, sondern nur noch der Text aus edit1.
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 10.09.09 14:47
Setze Key einfach auf #0, dann wird auch die Taste nicht mehr ausgegeben.
Und wenn du nur direkt einen anderen Buchstaben schreiben lassen willst als getippt wurde, dann kannst du den auch einfach in Key schreiben.
|
|
Airtrox 
      
Beiträge: 109
Delphi 7
|
Verfasst: Do 10.09.09 15:02
|
|
thepaine91
      
Beiträge: 763
Erhaltene Danke: 27
Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
|
Verfasst: Do 10.09.09 15:09
Ich will jetzt garnicht wissen wie viele Edits du auf deinem Formular hast wenn du jeden buchstaben neu zuweisen willst 
|
|