Wie verbindet man in Free Pascal eine Taste mit einem Button?

naaman  03.10.2024, 19:39

Warum?

KrawumXD 
Beitragsersteller
 03.10.2024, 19:40

Weil es mich interessiert und ich wissen möchte, was für Möglichkeiten man mit Pascal hat ...

naaman  03.10.2024, 19:42

Ich meine, warum muss es die ENTER-Taste sein, die eine Aktion auslösen soll.

KrawumXD 
Beitragsersteller
 03.10.2024, 19:47

Wir haben in der Schule ein vereinfachtes Taschenrechner-Programm geschrieben, wo es für mich gewohnheitstechnisch besser ist Enter zu drücken, da ich es vom normalen Rechner kenne

naaman  03.10.2024, 19:49

Alles klar, ich teste das Mal. Melde mich gleich wieder.

KrawumXD 
Beitragsersteller
 03.10.2024, 19:49

klar Danke für die Mühe :)

KarlRanseierIII  03.10.2024, 20:01

Ergänze die Frage doch bitte um die Basisinformationen, welches GUI-Tollkit+Binding findet Verwendung.

KrawumXD 
Beitragsersteller
 03.10.2024, 20:23

Weiß nicht, wir haben die Lazarus Umgebung genutzt, falls du das meinst, ansonsten wüste ich nichts genaueres, da das ganze noch ziemliches Neuland für mich ist ...

2 Antworten

Ordne der Komponente, welche auf den Tastendruck reagieren soll, einfach einen Handler für das OnKeyPress-Event zu.

Innerhalb der Lazarus IDE brauchst du dafür lediglich die Komponenten selektieren und im Tab Ereignisse des Objektinspektors zweimal in das leere Feld, rechts neben OnKeyPress klicken. Im Quelltexteditor wird daraufhin eine neue Prozedur erstellt, die an das Event gebunden wird. In dieser Prozedur kannst du nun mit Hilfe einer Verzweigung die passende Taste herausfiltern.

if Ord(Key) = VK_RETURN then
begin
  // do something ...
end;

In der Unit musst du noch den LCLType unter uses mit auflisten, damit die Konstante VK_RETURN bekannt ist. Andernfalls kannst du Key ebenso mit #13 vergleichen.

Also:

1) Du brauchst ein neues Projekt mit einem LABEL.

2) Du klickst auf die FORM

3) Im Objektinspektor schaltest du KEYPREVIEW auf TRUE

4) Dann gehst du auf EREIGNISSE und klickst bei ONKEYPRESS doppelt

5) in der Prozedur schreibst diesen Code:

If key=#13 then Label1.Caption:='TEST';

6) starte die App und mit Druck auf ENTER erschein 'TEST' im Label.


KrawumXD 
Beitragsersteller
 03.10.2024, 20:27

Vielen Dank :) und Danke für die Mühe ...