Entwickler-Ecke

Sonstiges (Delphi) - Tastendruck


Delete - Sa 25.01.03 16:01
Titel: Tastendruck
Hey,
ich weiß ist ne doofe Frage, aber ich will, dass auf ein Tastendruck was passiert. Wie geht's? Also wenn man r drückt, soll sich zum Beispiel die Caption von nem Button verändern.
Ich hoffe, dass ihr mir schnell helfen könnt :)

nGerrit


Christian S. - Sa 25.01.03 16:30

Schau Dir mal das KeyPress-Ereignis und die KeyPreview-Eigenschaft einer Form an.


Delete - Sa 25.01.03 18:05

Hmm Tut mir leid. Kann ich nicht wirklich viel mit anfangen *G*

Kann mir einer n beispiel quellcode posten?

nGerrit


Christian S. - Sa 25.01.03 18:30

Na gut, aber nur ausnahmsweise:


Quelltext
1:
2:
3:
4:
5:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = 'r' then Button1.Caption:='geändert';
end;


Damit wird jedes Mal, wenn eine auf der Form eine Taste gedrückt wird, überprüft, ob es die Taste "r" war. Damit das aber auch geprüft wird, wenn sich der Benutzer gerade in einem Editfeld oder so befindet, musst Du einstellen, das jedes Tastensignal erstmal an die Form gesendet wird. Also: Form1.KeyPreview:=true. Oder ganz einfach im Object Inspector einstellen.

MfG,
Peter


Delete - So 26.01.03 20:31

Hmm.
Tut mir leid, aber klappt nicht *g*
Zitat:
[Error] Unit1.pas(31): Type of expression must be BOOLEAN
[Error] Unit1.pas(39): Statement expected but end of file found
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'

Woran liegts?

nGerrit


hansa - So 26.01.03 21:17

Hi,

als Denkanstoß (auch ausnahmsweise) :


Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.Button1KeyPress(Sender: TObject; var Key: Char);
begin
  if key = 'r' then
    Button1.Caption:='Caption geändert auf r'
  else
   Button1.Caption:='Caption geändert auf '+key;
end;


Desweiteren vermute ich, daß in Deinem Programm BEGIN und END bzw. die ' falsch gesetzt sind :!:

Gruß
Hansa


Christian S. - So 26.01.03 21:19

Im Allgemeinen ist es immer ratsam, nicht nur die Fehlermeldung, sondern auch den Quelltext zu posten, auf den sich die Fehlermeldung bezieht.


hansa - So 26.01.03 21:24

... Dann wäre wahrscheinlich schon alles klar.


Delete - Mo 27.01.03 16:08

Peter Lustig hat folgendes geschrieben:
Im Allgemeinen ist es immer ratsam, nicht nur die Fehlermeldung, sondern auch den Quelltext zu posten, auf den sich die Fehlermeldung bezieht.



Ich hab genau den Quelltext genommen, den du mir gepostet hattest... Deswegen hab ich den nicht nochmal gepostet.

Naja. Danke erstmal


Matthias - Mo 27.01.03 17:40

Hy,

ich kann nur empfehlen, die Beispiele auch mal genau zu betrachten. Im ersten Bsp. wird das OnKeyDown Ereignis verwendet. Man erhält hier den virtuellen Key (Typ Word). Verglichen wird mit eine Char. Und schon knallts.

Im zweiten Bsp. wird das OnKeyPress Ereignis verwendet. Hier ist Key vom Typ char und alles klappt wunderbar.

Machmal frage ich mich wozu es F1 gibt. Hier steht im allgemeinen die Lösung des Problems.

ciao
Matthias