|
#1
|
|||
|
|||
TTimer
Добрый день! У меня есть вопрос: я написал пару процедур для работы с таймером, но они работают некорректно.
Вот написанный код: Код:
var Form1: TForm1; x: array of TTimer; len, i: integer; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin len:=0; setlength(x, len+1); for i:=0 to len do begin x[i] := TTimer.Create(self); x[i].Interval := 10000; x[i].Enabled := true; x[i].OnTimer := myproc; showmessage('Intermediate' + inttostr(i)); end; end; procedure TForm1.myproc(Sender: TObject); begin x[i].Enabled:= False; showmessage('My proc' + inttostr(i)); end; В процедуре myproc значение переменной i равно 1, хотя должно быть равно 0, как и в вызывающей ее процедуре. Почему? Где ошибка? |