Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Event: 1 Sekunde nach OnKeyUp? (https://www.delphipraxis.net/167187-event-1-sekunde-nach-onkeyup.html)

fgp 16. Mär 2012 18:29

Event: 1 Sekunde nach OnKeyUp?
 
Hallo,

wie könnte ich ein folgendes Event programmieren:
1 Sekunde nach dem letzten Tastenanschlags (OnKeyUp) soll ein Befehl ausgelöst werden. Das Problem ist aber, dass der Befehl nicht ausgelöst werden soll, wenn in der Zwischenzeit von 1 Sekunde eine weitere Taste gedrückt wurde.

Ich bin ratlos, vielleicht hat jemand eine Idee?

cookie22 16. Mär 2012 18:32

AW: Event: 1 Sekunde nach OnKeyUp?
 
Zitat:

Zitat von fgp (Beitrag 1156977)
Hallo,

wie könnte ich ein folgendes Event programmieren:
1 Sekunde nach dem letzten Tastenanschlags (OnKeyUp) soll ein Befehl ausgelöst werden. Das Problem ist aber, dass der Befehl nicht ausgelöst werden soll, wenn in der Zwischenzeit von 1 Sekunde eine weitere Taste gedrückt wurde.

Ich bin ratlos, vielleicht hat jemand eine Idee?

Starte einfach einen Timer, falls ein anderes KeyUp triggert, stellst du den Timer ab, bzw. startest ihn neu.

himitsu 16. Mär 2012 18:55

AW: Event: 1 Sekunde nach OnKeyUp?
 
Wobei sowas schon öfters mal gefragt wurde, wie z.B. schonmal vor wenigen Tagen ... die SuFu langweilt sich bestimmt schon

http://www.delphipraxis.net/166959-s...sgelassen.html

fgp 16. Mär 2012 19:53

AW: Event: 1 Sekunde nach OnKeyUp?
 
Hallo,

danke für die Antworten.
Wie kann ich überprüfen, ob KeyUp (oder auch KeyPress/~Down) nochmal ausgeführt wird?
Werde leider aus dem von himitsu geposteten Thread nicht schlau, habe mal die Methode von Bummi mit WM_KEYUP probiert, doch es tat sich leider nichts.

Bummi 16. Mär 2012 19:59

AW: Event: 1 Sekunde nach OnKeyUp?
 
Delphi-Quellcode:
procedure TForm2.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
    Timer1.enabled := false;
    Timer1.enabled := True;
end;

procedure TForm2.Timer1Timer(Sender: TObject);
begin
    Timer1.Enabled := false;
    Showmessage('1 Sekunde rum');
end;

fgp 16. Mär 2012 20:06

AW: Event: 1 Sekunde nach OnKeyUp?
 
Vielen Dank, dass es so einfach funktioniert, hätte ich nicht gedacht.
Auf
Code:
    Timer1.enabled := false;
          Timer1.enabled := True;
wäre ich nie gekommen!

fgp 16. Mär 2012 20:17

AW: Event: 1 Sekunde nach OnKeyUp?
 
Ich frage mich allerdings, warum
Code:
Showmessage('1 Sekunde rum');
jetzt endlos ausgeführt wird, obwohl der Timer deaktiviert wurde? Habe die ShowMessage mal durch ein
Code:
Panel2.Visible:=True
ersetzt und bekomme beim Schließen des Programms eine Access Violation at address 000000.

borstenei 16. Mär 2012 22:30

AW: Event: 1 Sekunde nach OnKeyUp?
 
Der Vorschlag von Bummi funktioniert fehlerfrei, irgendetwas ist bei Dir falsch....

himitsu 17. Mär 2012 01:55

AW: Event: 1 Sekunde nach OnKeyUp?
 
Den ersten Befehl in OnTimer vergessen?

fgp 17. Mär 2012 08:53

AW: Event: 1 Sekunde nach OnKeyUp?
 
Okay, das Problem lag wo ganz anders. Sorry! Funktioniert einwandfrei.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:58 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