PDA

View Full Version : سوال: آیا تایمر thread جداگانه داره؟ آیا ممکنه در اجرای برنامه اخلالی ایجاد کنه؟



mbshareat
پنج شنبه 26 آبان 1401, 19:29 عصر
سلام علیکم
فرض کنید یک TImage داریم که کارهایی در اون انجام میدیم و بعد refresh می کنیم. اگر یک تایمر هم داشته باشیم که هر یک دهم ثانیه اجرا بشه، آیا موجب میشه قبل از اتمام کار بر روی تصویر، تصویر قبل از اتمام عمل به روز بشه ( همینطور در لیست باکس و غیره که گاهی تنظیمشون زمانبر هست)

یوسف زالی
جمعه 27 آبان 1401, 01:43 صبح
سلام.
تایمر تا زمانی که کارتون در پروسیجر جاری تموم نشده باشه فایر نمی شه.
یعنی اگر تایمر شما 5 ثانیه باشه و تو یه لوپ دارید کار می کنید که 30 ثانیه طول می کشه اون تایمر در ثانیه 5 یهو ران نمی شه و صبر می کنه کار شما تموم بشه.
در مثال زیر مقدار تگ برابر یک می شه اون هم بعد از 30 ثانیه



procedure TForm1.FormCreate(Sender: TObject);
begin
tag := 0;
Timer1.Enabled := true;


sleep(30000);
end;


procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := false;
tag := tag + 1;
Timer1.Enabled := true;
end;

mbshareat
جمعه 27 آبان 1401, 14:39 عصر
خدا حفظتون کنه. ممنون و متشکرم