Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi key press (https://www.delphipraxis.net/59176-key-press.html)

Sh4d0w 18. Dez 2005 20:15


key press
 
hallo!

wie kann man in der Prozedur FormKeyPress, das so machen, dass wenn eine taste gedrückt wurde, dass man die nicht nochmal drücken kann? also bei mir steht jetzt z.B

Delphi-Quellcode:
Buchstabe:=Upcase(Key);
EdBuchstabe.Text:=Buchstabe;
Wenn man jetzt eine taste drückt ist sie im editfeld, wenn man die gleiche taste nochmal drückt sieht man zwar keine veränderung, aber sie wird auch "gesendet", kann man das verhindern? also ein befehl, dass man jeden buchstaben von A-Z nur einmal drücken kann???

mfg,
Sh4d0w

Waldteufel 18. Dez 2005 20:18

Re: key press
 
Hi.

So müsste es gehen.

Delphi-Quellcode:
var
  schonGedrueckt : set of char; // globale Variable!

procedure TForm1.Form1KeyPress(Sender: TObject; Key: char);
begin
  if Key in schonGedrueckt then Exit;

  Include(schonGedrueckt, Key);
  EdBuchstabe.Text:=Upcase(Key);
end;
Wenn du die Menge der schon gedrückten Tasten wieder leeren willst, schreib einfach
Delphi-Quellcode:
 schonGedrueckt := [];

Sh4d0w 18. Dez 2005 20:26

Re: key press
 
geht nicht, jetzt sendet er gar nix! geht das nicht anders?

Hansa 18. Dez 2005 20:43

Re: key press
 
Überlege Dir die logische Aufgabe : irgendwo muß gespeichert werden, ob eine Taste gedrückt wurde. Ist das der Fall, dann muß es eben markiert werden. Als erstes fällt mir dazu folgendes ein : ARRAY. Zweidimensional, nämlich der Tastenwert und ein boolscher Wert "gedrueckt" J/N. 8)

Sh4d0w 18. Dez 2005 20:46

Re: key press
 
ich hab erst seit kurzem angefangen, kannst du das vllt. näher erklären mit dem array??


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:53 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz