Autor Beitrag
Airtrox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109


Delphi 7
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 09.09.09 16:01 
Moin!

user profile iconAirtrox hat folgendes geschrieben Zum zitierten Posting springen:
wie ich dass mit OnKeyPress lösen kann, also wie ich herausfinden kann, welche Taste gedrückt wurde
Ähm... :?
ausblenden Delphi-Quelltext
1:
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);					
:nixweiss:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Mi 09.09.09 19:05 
Bei OnKeyPress sind Buchstaben überhaupt kein Problem, denn wie user profile iconNarses schon angedeutet hat:

ausblenden 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:

ausblenden 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. :idea:
ssb-blume
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 375
Erhaltene Danke: 7

XP, W7, W8
Deutschland
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 763
Erhaltene Danke: 27

Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
BeitragVerfasst: Do 10.09.09 10:10 
Ich bezweifel das es funktioniert den Key Wert zu ändern. Bzw. funktioniert zwar hat aber keine Auswirkung.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 763
Erhaltene Danke: 27

Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
BeitragVerfasst: Do 10.09.09 10:53 
Komisch das es bei mir nicht ging. ^^
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 10.09.09 11:20 
user profile iconthepaine91 hat folgendes geschrieben Zum zitierten Posting springen:
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... :roll:
// 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 763
Erhaltene Danke: 27

Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
BeitragVerfasst: 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



BeitragVerfasst: Do 10.09.09 11:46 
Tja, was ein kleines Wörtchen wie "var" nicht alles ausmachen kann :)
thepaine91
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 763
Erhaltene Danke: 27

Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
BeitragVerfasst: 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



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 763
Erhaltene Danke: 27

Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
BeitragVerfasst: 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



BeitragVerfasst: Do 10.09.09 14:05 
OK, falsch verstanden.
Airtrox Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109


Delphi 7
BeitragVerfasst: 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:

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109


Delphi 7
BeitragVerfasst: Do 10.09.09 15:02 
Danke, so hat es dann geklappt :)

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
  case key of
    'a'begin
     memo1.lines.add(edit1.text);
     key := #0;
   end;
  end;
thepaine91
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 763
Erhaltene Danke: 27

Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
BeitragVerfasst: 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 :nut: