![]() |
entertaste gedrückthalten unterbinden....
Hi,
ich habe ein kleines Funspiel geschrieben bei dem gemessen wird wie oft eine Taste in 30s gedrückt werden kann. Das Problem ist, dass der Zähler auch weiter geht wenn die Entertaste gedrückt gehalten wird. Hat jemand eine Idee wie ich das um gehen kann? :gruebel: Ich klicke bis jetzt immer auf einen Button... Schonmal Danke im vorraus!!! Bin noch Anfänger^^ |
Re: entertaste gedrückthalten unterbinden....
Eine Taste die gedrückt wird muss auch wieder losgelassen werden. verwende mal das "KeyUp"-Ereignis...
Delphi-Quellcode:
Muss mann halt abfragen, Taste gedrückt und losgelassen ?
procedure TForm1.FormKeyUp(...
begin if key = 13 then windows.Beep(880,25); if key = 32 then windows.Beep(880,25); end; |
Re: entertaste gedrückthalten unterbinden....
Naja...
es geht ja darum, dass der User nicht die 30s die taste gedrückt hält und der highscore bei 900 steht, sondern, dass er immer wieder neu drücken muss. Hast du eine Idee? Meinetwegen kann auch nur eine Taste genutzt werden die gedrückt werden muss. Aber auch das bekomme ich nicht so richtig hin. |
Re: entertaste gedrückthalten unterbinden....
Einfach den aktuellen Status einer Taste merken, los geht's :
Delphi-Quellcode:
...hoffe mal das geht so, ist aus dem Kopf... :gruebel:
//...
implementation //... type TKeyState = (ksUp, ksDown); var KeyState: TKeyState; Counter : Integer = 0; procedure TForm1.FormKeyUp(Sender: TObject; var Key:Word; Shift: TShiftState); begin if key = 13 then windows.Beep(440, 25); if key = 32 then windows.Beep(440, 25); KeyState := ksDown; end; procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: ShiftState); begin if key = 13 then windows.Beep(880, 25); if key = 32 then windows.Beep(880, 25); if KeyState = ksDown then inc(Counter); KeyState := ksUp; {Form1.} Caption := InttoStr(Counter); end; |
Re: entertaste gedrückthalten unterbinden....
Hallo,
wie wär's, einfach nur KeyUp zu verwenden. Das sollte doch aufs Gleiche rauskommen, und KeyUp wird im Gegensatz zu KeyDown immer nur einmal aufgerufen. Gruß xaromz |
Re: entertaste gedrückthalten unterbinden....
Hey DANKE!!!! :thumb: :thumb: :thumb:
Das ist genau das richtige! |
Re: entertaste gedrückthalten unterbinden....
Zitat:
|
Re: entertaste gedrückthalten unterbinden....
Wie mache ich des, wenn ich in der Butten1Click Prozedur nur die Entertaste ausschließen will???
|
Re: entertaste gedrückthalten unterbinden....
Zitat:
Woher kommt denn auf einem eine ButtonOnClick-Ereigniss? Das brauchst Du doch für einen Fall nicht oder? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz