Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi timer per tastendruck beenden (https://www.delphipraxis.net/9897-timer-per-tastendruck-beenden.html)

Wadim 7. Okt 2003 13:50


timer per tastendruck beenden
 
hi,

kennt einer einen befehl wie man einen timer per tastendruck (auf tastatur) beenden kann?

z.b mit der taste 'S'

danke

Luckie 7. Okt 2003 13:53

Re: timer per tastendruck beenden
 
Taste im OnKeypress abfangen und Timer anhalten.

Christian Seehase 7. Okt 2003 13:55

Re: timer per tastendruck beenden
 
Moin Wadim,

meinst Du das so:

Delphi-Quellcode:
var
  Form1: TForm1;
  iCount : integer = 0;

implementation

{$R *.DFM}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  inc(iCount);
  self.Caption := IntToStr(iCount);
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = ord('S') then Timer1.Enabled := false;
end;
?

Wadim 7. Okt 2003 14:11

Re: timer per tastendruck beenden
 
Zitat:

Zitat von Christian Seehase
Moin Wadim,

meinst Du das so:

Delphi-Quellcode:
var
  Form1: TForm1;
  iCount : integer = 0;

implementation

{$R *.DFM}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  inc(iCount);
  self.Caption := IntToStr(iCount);
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = ord('S') then Timer1.Enabled := false;
end;
?

hab es ausprobiert aber irgendwie klapt es nicht- führt keine aktion aus- der timer läuft weiter?


@ Luckie

kannst bitte den ganzen befehl hier reinposten?- hab es ausprobiert aber ich glaube ich hab was falsch gemacht, zeigt fehlermeldung an

PS: es soll auch den timer deaktivierten wenn das formblatt nicht aktiv ist (z.b minimiert oder im systemtray)

Christian Seehase 7. Okt 2003 14:18

Re: timer per tastendruck beenden
 
Moin Wadim,

Zitat:

Zitat von Wadim
PS: es soll auch den timer deaktivierten wenn das formblatt nicht aktiv ist (z.b minimiert oder im systemtray)

Das ist ja eine nicht wirklich unwichtige Information ;-)

Dann such' hier mal nach Hier im Forum suchenRegisterHotkey. Damit sollte sich das lösen lassen.

Intruder 7. Okt 2003 14:22

Re: timer per tastendruck beenden
 
Delphi-Quellcode:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
    case key of
's': Timer1.Enabled := false;
end;
end;
das hier sollte dir helfen ;-)

Wadim 7. Okt 2003 15:33

Re: timer per tastendruck beenden
 
Zitat:

Zitat von Intruder
Delphi-Quellcode:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
    case key of
's': Timer1.Enabled := false;
end;
end;
das hier sollte dir helfen ;-)

funktioniert leider auch nicht :(

Christian Seehase 7. Okt 2003 15:35

Re: timer per tastendruck beenden
 
Moin Wadim,

hast Du Dir auch mal Hier im Forum suchenRegisterHotkey angesehen.

Wadim 7. Okt 2003 15:37

Re: timer per tastendruck beenden
 
Zitat:

Zitat von Christian Seehase
Moin Wadim,

hast Du Dir auch mal Hier im Forum suchenRegisterHotkey angesehen.

schon aber nicht richtig- da ich kurz weg muste- unter welcher überschrift sollt ich am besten gucken

Die Muhkuh 7. Okt 2003 15:38

Re: timer per tastendruck beenden
 
Delphi-Quellcode:
if (Key = 's') or (Key = 'S') then
  Timer1.enabeled := false;
Das kommt in On keypress oder in on Key down!

Wadim 7. Okt 2003 15:41

Re: timer per tastendruck beenden
 
Zitat:

Zitat von Spider
Delphi-Quellcode:
if (Key = 's') or (Key = 'S') then
  Timer1.enabeled := false;
Das kommt in On keypress oder in on Key down!

geht auch nicht?

Christian Seehase 7. Okt 2003 15:49

Re: timer per tastendruck beenden
 
Moin Wadim,

der Thread "Hotkey" dürfte reichlich Informationen enthalten.

Die Muhkuh 7. Okt 2003 15:49

Re: timer per tastendruck beenden
 
Mach das mal so:

Platziere eine Gauge und ein Timer!
In das OnTimer-event von Timer schreibst du:

Delphi-Quellcode:
Gauge1.progress := Gauge.progress + 1;
dann stellst du denn intevall vom Timer auf 200.

Danach machst du auf der Form ein OnKeyPress-Event (ist auf der form im OI inter ereignisse)!
In dieses onkeypress schreibst du:
Delphi-Quellcode:
if Key = 's' then
    Timer1.enabled := false;
Dann auf 's' (kleines s) drücken und es müsste anhalten!

Spiddi

Christian Seehase 7. Okt 2003 16:23

Re: timer per tastendruck beenden
 
Moin Spider,

für den Fall, dass das Programm aktiv ist, also den Tastaturfokus hat hast Du natürlich recht, aber Wadim möchte den Timer auch abschalten, wenn sein Programm nicht aktiv ist, und in diesem Falle würde das OnKeyPress nicht ausgeführt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:07 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 by Thomas Breitkreuz