Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Booleanabfrage eines timers (https://www.delphipraxis.net/25692-booleanabfrage-eines-timers.html)

delphi_newbie_123 10. Jul 2004 15:25


Booleanabfrage eines timers
 
Hallo,
mein Programm besitzt viele timer,
jetzt habe ich das problem, dass nach einiger zeit irgend ein timer ausfällt.
da ich nicht weiss welcher. möchte ich nach dem ausfallen einen button druecken, der mir dann
alle booleans der timer anzeigt, zb als showmessage('');
Delphi-Quellcode:
for i:=1 to 585 do
begin
showmessage();
jetzt weiss ich nur nicht wie ich den derzeitigen boolean eines timer rausfinden kann
danke fuer die hilfe im vorraus

Markus 10. Jul 2004 15:31

Re: Booleanabfrage eines timers
 
Du könntest es so probieren (ungetestet). Du brauchst eine Variable vom Typ boolean (hier "status")

Delphi-Quellcode:
for i:=0 to 585 do begin
   status:=TTimer(FindComponent('timer'+inttostr(i)).enabled;
   
   if status then showmessage('Timer'+inttostr(i)+': aktiv')
   else showmessage('Timer'+inttostr(i)+': inaktiv');
end;

Nikolas 10. Jul 2004 15:31

Re: Booleanabfrage eines timers
 
Die Timer fallen aus? Du solltest eher schauen, wo dein Programm sie ausschaltet, denn das ein Timer einfach aufhört ist recht unwahrscheinlich.
Wenn du's wirklich überprüfen willst, nutze Findcompnent, und gehe alle durch.
Und den Status eines Timers kannst du dann so auslesen:
Delphi-Quellcode:
if timer1.enabled then shoemessage('Der tut noch');
Nutze aber lieber kein Showmessage!! bei 600 Showmessages wirds leicht nervig. Ich würd ein Stringgrid vorschlagen.

@ markus genau so wollte ich das dann machen. Allerdings ist's schöner wenn du statt 'if status= true then...' das so schreibst: 'if status then ...'

delphi_newbie_123 10. Jul 2004 15:34

Re: Booleanabfrage eines timers
 
ahh,, danke sehr
werde ich gleich mal versuchen !

Markus 10. Jul 2004 15:34

Re: Booleanabfrage eines timers
 
@toxman jo, stimmt.
Ah, und besser wärs wenn du "showmessage" verwenden würdest :mrgreen: :wink: :coder:

delphi_newbie_123 10. Jul 2004 15:40

Re: Booleanabfrage eines timers
 
Delphi-Quellcode:
var
i1:integer;
status:boolean;
begin
for i:=0 to 85 do begin
   status:=TTimer(FindComponent('timer'+inttostr(i1)).enabled;
   if status then showmessage('Timer'+inttostr(i1)+': aktiv')
   else showmessage('Timer'+inttostr(i1)+': inaktiv');
end;
hm die status:= zeile mag er nicht
was kannd a net stimmen?

phXql 10. Jul 2004 15:41

Re: Booleanabfrage eines timers
 
was kommt den für ein fehler?

AH! da fehlt ne klammer ;)

muss heissen:
Delphi-Quellcode:
status:=TTimer(FindComponent('timer'+inttostr(i))).enabled;

Markus 10. Jul 2004 15:42

Re: Booleanabfrage eines timers
 
Erstmal muss die Variable "i" heißen und nicht "il". Und ich hab den Fehler:

status:=TTimer(FindComponent('timer'+inttostr(i))).enabled;

delphi_newbie_123 10. Jul 2004 15:43

Re: Booleanabfrage eines timers
 
undefinierter bezeichner enabled ;)

phXql 10. Jul 2004 15:44

Re: Booleanabfrage eines timers
 
Zitat:

Zitat von phXql
was kommt den für ein fehler?

AH! da fehlt ne klammer ;)

muss heissen:
Delphi-Quellcode:
status:=TTimer(FindComponent('timer'+inttostr(i))).enabled;

:mrgreen:

delphi_newbie_123 10. Jul 2004 15:46

Re: Booleanabfrage eines timers
 
ahh lol danke ;))
:wall:

Markus 10. Jul 2004 15:46

Re: Booleanabfrage eines timers
 
Und ich hätte nen Vorschlag: machs doch so (brauchst ne Listbox), sonst musst du immer ok, ok, ok usw. klicken.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
    status: boolean;
begin
listbox1.clear;

for i:=1 to 10 do begin
   status:=TTimer(FindComponent('timer'+inttostr(i))).Enabled;

   if status then listbox1.items.add('Timer'+inttostr(i)+': aktiv')
   else listbox1.items.add('Timer'+inttostr(i)+': inaktiv');
end;
end;

Nikolas 10. Jul 2004 15:49

Re: Booleanabfrage eines timers
 
probiers mal kürzer, da kann man weniger Fehler einbauen:
Delphi-Quellcode:
if ttimer(findcomponent('timer'+inttostr(1))).enabled
then label1.caption:='an' else label1.caption:='aus';
Damit überprüf ich in Timer2 ob Timer1 am Laufen ist. Braucht noch ne Variable weniger und erklärt sich schneller.

P.S.: Such erstmal in deinem Text, ob irgendwo die Timer ausgeschaltet werden. So ein Teil geht eigentlich nicht einfach aus.

Meflin 10. Jul 2004 15:50

Re: Booleanabfrage eines timers
 
Zitat:

Zitat von Toxman
probiers mal kürzer, da kann man weniger Fehler einbauen:
Delphi-Quellcode:
if ttimer(findcomponent('timer'+inttostr(1))).enabled
then label1.caption:='an' else label1.caption:='aus';
Damit überprüf ich in Timer2 ob Timer1 am Laufen ist. Braucht noch ne Variable weniger und erklärt sich schneller.

oder auch gleich
Delphi-Quellcode:
if ttimer(findcomponent('timer1')).enabled
then label1.caption:='an' else label1.caption:='aus';
:mrgreen:

Nikolas 10. Jul 2004 15:52

Re: Booleanabfrage eines timers
 
Klar, wär kürzer, aber der Code ist dafür gedacht in eine for-Schleife gebaut zu werden und dann müsste man nur die '1' durch 'i' ersetzen. :thuimb:

P.S.: Dann bräuchte ich auch kein FIncomponent.
Delphi-Quellcode:
if timer1.enabled
then label1.caption:='an' else label1.caption:='aus';
:mrgreen: :mrgreen: :mrgreen:

alcaeus 10. Jul 2004 15:54

Re: Booleanabfrage eines timers
 
Zitat:

Zitat von "Meflin
oder auch gleich
Delphi-Quellcode:
if ttimer(findcomponent('timer1')).enabled
then label1.caption:='an' else label1.caption:='aus';
:mrgreen:

Ach kommt schon jungs:
Delphi-Quellcode:
if Timer1.enabled then
  label1.caption:='an'
else
  label1.caption:='aus';
Greetz
alcaeus

[edit]:oops: Zu spät :mrgreen:[/edit]

Nikolas 10. Jul 2004 15:56

Re: Booleanabfrage eines timers
 
Tja, da sieht man mal, wie man einen Code so weit optimieren kann, dass er im Endeffekt nicht mehr die ursprüngliche Aufgabe lösen kann. :lol:

delphi_newbie_123 10. Jul 2004 23:14

Re: Booleanabfrage eines timers
 
hehe ;)
danke sehr für die listbox möglichkeit


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