jandaghian
پنج شنبه 16 فروردین 1386, 11:16 صبح
سلام من یک برنامه دارم که توی اون به تعداد متغیر سراسری i تایمر در زمان اجرا create میکنم و برای رویداد ontimer هر تایمر باید یک متد خاص خود آن تایمر ایجاد بشه(یه جورایی وابسته به متغیرi (. یعنی من باید با یک متد mymethod کل ontimerهای هر تایمر را خاص خودش مقدار دهی کنم. سعی کردم این کار را با متغیر سراسری I انجام بدم. ولی نمیشه. یعنی همش تایمر آخر با بیشترین I کار میکنه.
for i:=1 to StrToInt(NumberTrain.text) do
begin
Ti:=TTimer.Create(Self);
Ti.Name:= 'Timer'+IntToStr(i);
TTimer(FindComponent('Timer'+IntToStr(i))).Interva l:=10; TTimer(FindComponent('Timer'+IntToStr(i))).OnTimer :=Mymethod; TTimer(FindComponent('Timer'+IntToStr(i))).Enabled :=True;
end;
procedure TForm1.Mymethod(sender: TObject);
begin
ShowMessage(IntToStr(i));
Label1.Caption:=((Sender as TTimer).Name);
Form1.Refresh;
end;
برنامه که اجرا میشه فقط timer2 کار میکنه و I را هم 2 میگذاره ولی من با I اینجا کار دارم. میخوام هر تایمر یه رویداد OnTimer مخصوص خودش داشته باشه و در اون رویداد OnTimer,I مربوط به timer1 برابر 1 و I مربوط به timer2 برابر 2 باشه.
کمک...لطفا!!!!!
for i:=1 to StrToInt(NumberTrain.text) do
begin
Ti:=TTimer.Create(Self);
Ti.Name:= 'Timer'+IntToStr(i);
TTimer(FindComponent('Timer'+IntToStr(i))).Interva l:=10; TTimer(FindComponent('Timer'+IntToStr(i))).OnTimer :=Mymethod; TTimer(FindComponent('Timer'+IntToStr(i))).Enabled :=True;
end;
procedure TForm1.Mymethod(sender: TObject);
begin
ShowMessage(IntToStr(i));
Label1.Caption:=((Sender as TTimer).Name);
Form1.Refresh;
end;
برنامه که اجرا میشه فقط timer2 کار میکنه و I را هم 2 میگذاره ولی من با I اینجا کار دارم. میخوام هر تایمر یه رویداد OnTimer مخصوص خودش داشته باشه و در اون رویداد OnTimer,I مربوط به timer1 برابر 1 و I مربوط به timer2 برابر 2 باشه.
کمک...لطفا!!!!!