24/05/10 13:12
a_butta
Ciao a tutti. Ho provato a costruire un timer da codice (cioè senza trascinarlo dai componenti che fornisce Delphi). Fin qui tutto bene.
Solo che il mio scopo era quello di inserire un timer in un thread.
Questo è il codice che ho provato:
Il compilatore non mi da alcun errore. Il Label1, posto lì solo per controllo, assume regolarmente la caption 'Thread Avviato'. Tuttavia la ProgressBar1 non aumenta ne subisce alcun chè...
Non mi segnala assolutamente nulla ma non funziona... Non riesco proprio a capire dov'è l'errore, perchè se io il codice lo pongo sotto la classe TForm1 il timer funziona alla perfezione, mentre sotto il thread no...
Spero possiate aiutarmi
Grazie
Solo che il mio scopo era quello di inserire un timer in un thread.
Questo è il codice che ho provato:
... type TMyTimer = class(TThread) Timer: TTimer; procedure TimerOnTimer(Sender: TObject); protected procedure Execute; override; end; procedure TMyTimer.TimerOnTimer(Sender: TObject); begin Form1.ProgressBar1.Position:= Form1.ProgressBar1.Position + 1 end; procedure TMyTimer.Execute; begin Timer:= TTimer.Create(nil); Timer.Interval := 1000; Timer.OnTimer:= TimerOnTimer; Timer.Enabled:= True; Form1.Label1.Caption:= 'Thread Avviato'; end; procedure TForm1.Button1Click(Sender: TObject); begin TMyThread.Create(False); end;
Il compilatore non mi da alcun errore. Il Label1, posto lì solo per controllo, assume regolarmente la caption 'Thread Avviato'. Tuttavia la ProgressBar1 non aumenta ne subisce alcun chè...
Non mi segnala assolutamente nulla ma non funziona... Non riesco proprio a capire dov'è l'errore, perchè se io il codice lo pongo sotto la classe TForm1 il timer funziona alla perfezione, mentre sotto il thread no...
Spero possiate aiutarmi
Grazie
aaa