Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - OnKeyPress
Aceman - So 06.03.05 17:13
Titel: OnKeyPress
Kann mir jemand sagen wie das mit dem ereignis OnKeyPress geht.
Ich will jetzt z.B. das wenn ich die "enter" taste drücke dass
dann die die label1.Caption auf z.B. aktiviert unspringt
Also irgendwas mit Labe1.Caption ('Akriviert')
Aber wo stelle ich ein welche taste gedrückt werden soll usw.
Brauche Hilfe!! :?:
Moderiert von
Klabautermann: Topic aus Multimedia / Spiele / Grafik verschoben am Di 20.09.2005 um 21:58
wdbee - So 06.03.05 17:50
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin case Key of 'X': DoXAction; 'Y': DoYAction; 'Z': DoZAction; else DoDefaultAction; end; end; |
Karlson - So 06.03.05 17:51
Im OnKeyPress Event wird die Variable Key mit übergeben. In der wird gespeichert welche taste gedrückt wurde.
Ergo:
Delphi-Quelltext
1: 2: 3: 4:
| procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin if key=#13 then label1.Caption := 'aktiviert'; end; |
Aceman - Mo 07.03.05 19:34
Wo kann ich den nachgucken welche Zahl welche taste ist??
Born-to-Frag - Di 20.09.05 20:09
Es geht bei mir einfach nicht.. Ich hab es mit allen möglichkeiten Probiert
Delphi-Quelltext
1: 2: 3: 4:
| procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin if key=#49 then Button1.Caption := 'test'; end; |
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin case Key of '1': Button1.Caption:='TEST'; end; end; |
Es geht einfach nicht :'( :'( :'(
Irgendwelche Ideen? :D
greetz
Moderiert von
Gausi: Code- durch Delphi-Tags ersetzt
GTA-Place - Di 20.09.05 20:11
Benutze OnKeyDown, statt OnKeyPress.
Born-to-Frag - Di 20.09.05 20:19
Es geht, nur das ist nicht ganz was ich meine :(
Das problem ist, das ich es in meinen Taschenrechner einfügen will, und dieser mehrere Panels hat. Ich glaube es würde gehen, wenn der taschenrechner überhaupt keine panels hätte, aber das ist ja nicht was ich möchte.
Also noch mal zum verständnis: Man soll z.B. 1 drücken können, egal "wo" man gerade beim Taschenrechner ist (z.B. gerade auf Panel1, Panel2, oder Edit1)
Ich habe es natürlich versucht mit Form1, aber das geht ja leider nicht :(:(:(
greetz
Lannes - Di 20.09.05 20:35
Hallo,
@GTA-Place: genau!
Dazu ein Auszug aus der Delphi-Hilfe:
Zitat: |
Da der Parameter Key den Datentyp Char hat, registriert das Ereignis OnKeyPress das ASCII-Zeichen der gedrückten Taste. Tasten, die keinem ASCII-Char-Wert entsprechen (z.B. UMSCHALT oder F1), generieren kein Ereignis OnKeyPress. Tastenkombinationen (z.B. UMSCHALT+A) führen nur zu einem Ereignis OnKeyPress (in diesem Beispiel ergibt UMSCHALT+A den Key-Wert „A“, wenn die Feststelltaste deaktiviert ist). Soll auf Nicht-ASCII-Tasten oder Tastenkombinationen reagiert werden, verwenden Sie die Ereignisbehandlungsroutine für OnKeyDown oder OnKeyUp. |
@Born-to-Frag: setz KeyPreview der Form auf True.
Born-to-Frag - Di 20.09.05 20:48
OK, thx Lannes, das hat jetzt geholfen!!
Aber jetzt noch ne blöde Frage, wo ich aber keinen neuen Threat anfangen brauch:
Wie kann ich KeyPreview der Form1 standardmäßig auf True setzten, damit ich OnKeyPress nutzen kann :)?
greetz
Born-to-Frag - Di 20.09.05 20:55
Habs schoon gelöst :D
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!