#1 1. August 2010 [Delphi] Timerproblem hi, kann es sein das man den timer innerhalb einer laufenden prozedur nicht starten kann? bei mir siehts atm so aus: Code: procedure TForm1.Button1Click(Sender: TObject); ..... Code ..... restzeit := listbox1.Items.count*30-30; timer1.enabled := true; ....... for-for-schleife code ...... "Ende Prozedur" ...... procedure TForm1.Timer1Timer(Sender: TObject); begin label1.caption := inttostr(restzeit); label1.refresh; dec(restzeit); //form1.refresh; end; mit for-for-schleife meine ich eine schleife in der schleife^^ hab mir das jetz nochma genau angeguckt und es scheint so als ob das ontimer event nicht stattfindet solange das programm in der unterschleife is. was soll das?^^ (die "äußere" for-schleife kann ein paar minuten dauern und die "innere" for-schleife geht immer 30 sek. nachdem das programm dann wieder in die äußere for-schleife springt, zählt es weiter runter. solange es in der inneren steckt, wird nicht runter gezählt.....-.-) gibt es vllt noch eine andere möglichkeit so eine restzeitanzeige umzusetzen? + Multi-Zitat Zitieren
#2 1. August 2010 AW: [Delphi] Timer innerhalb einer Prozedur starten Du startest den Timer schon, aber dieser ist inerhhalb desselben Threads und der Code kann nur nacheinander bearbeitet werden, sprich solange deine Prozedur nicht zu Ende ist, wird der Code vom Timer nicht aufgerufen. Mfg Rushh0ur + Multi-Zitat Zitieren
#3 2. August 2010 AW: [Delphi] Timer innerhalb einer Prozedur starten naja er wird ja schon gestartet. er läuft sogar in der for schleife weiter. nur sobald die zweite for schleife startet, bleibt er stehen. danach läuft er dann weiter... + Multi-Zitat Zitieren
#4 2. August 2010 AW: [Delphi] Timerproblem Sicher? Normalerweise wird das OnTimer Event nicht ausgefürt wenn der Thread anderweitig beschäftig ist, wie bei dir mit der Prozedur. Es sei den du verwendest iwo in dieser den Befehl Application.ProcessMessages; dann werden alle Ereignisse zusätzlich (rekursiv) verarbeitet. //Edit: Anscheinend dauert deine Prozedur ne weile bis es verarbeitet ist wodurch sich deine ganze Anwendung "aufhängt" und du versuchst mit diversen mitteln dies zu unterbinden. Ein Tipp: Versuch doch deine Schleifen in einen Timer auszulagern wobai das Interval 1 beträgt oder noch besser du Verwendest nen Thread dafür Mfg Rushh0ur + Multi-Zitat Zitieren