![]() |
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:
jetzt weiss ich nur nicht wie ich den derzeitigen boolean eines timer rausfinden kann
for i:=1 to 585 do
begin showmessage(); danke fuer die hilfe im vorraus |
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; |
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:
Nutze aber lieber kein Showmessage!! bei 600 Showmessages wirds leicht nervig. Ich würd ein Stringgrid vorschlagen.
if timer1.enabled then shoemessage('Der tut noch');
@ 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 ...' |
Re: Booleanabfrage eines timers
ahh,, danke sehr
werde ich gleich mal versuchen ! |
Re: Booleanabfrage eines timers
@toxman jo, stimmt.
Ah, und besser wärs wenn du "showmessage" verwenden würdest :mrgreen: :wink: :coder: |
Re: Booleanabfrage eines timers
Delphi-Quellcode:
hm die status:= zeile mag er nicht
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; was kannd a net stimmen? |
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;
|
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; |
Re: Booleanabfrage eines timers
undefinierter bezeichner enabled ;)
|
Re: Booleanabfrage eines timers
Zitat:
|
Re: Booleanabfrage eines timers
ahh lol danke ;))
:wall: |
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; |
Re: Booleanabfrage eines timers
probiers mal kürzer, da kann man weniger Fehler einbauen:
Delphi-Quellcode:
Damit überprüf ich in Timer2 ob Timer1 am Laufen ist. Braucht noch ne Variable weniger und erklärt sich schneller.
if ttimer(findcomponent('timer'+inttostr(1))).enabled
then label1.caption:='an' else label1.caption:='aus'; P.S.: Such erstmal in deinem Text, ob irgendwo die Timer ausgeschaltet werden. So ein Teil geht eigentlich nicht einfach aus. |
Re: Booleanabfrage eines timers
Zitat:
Delphi-Quellcode:
:mrgreen:
if ttimer(findcomponent('timer1')).enabled
then label1.caption:='an' else label1.caption:='aus'; |
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:
:mrgreen: :mrgreen: :mrgreen:
if timer1.enabled
then label1.caption:='an' else label1.caption:='aus'; |
Re: Booleanabfrage eines timers
Zitat:
Delphi-Quellcode:
Greetz
if Timer1.enabled then
label1.caption:='an' else label1.caption:='aus'; alcaeus [edit]:oops: Zu spät :mrgreen:[/edit] |
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:
|
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