ورود

View Full Version : عدم تغیر مقادیر ؟



Majid.Ebru
شنبه 29 خرداد 1395, 03:07 صبح
سلام
وقتی از دستور زیر توی "لازاروس" استفاده می کنم ، فقط مقدار کلید درست تغییر می کنه ؟؟
کسی می تونه راهنمایی کنه؟؟



procedure TForm1.Button1Click(Sender: TObject);
var
i :Integer;
begin
for i:=0 to 50 do begin
Button1.Caption:= inttostr(i);
panel1.Caption:= inttostr(i);
edit1.text:= inttostr(i);
label1.Caption:= inttostr(i);
sleep(10);
end;
end;


توی برنامه اصلی دستور Sleep نیست و به جای( Sleep) باز شدن فایل و خوندن اشیا و جای گذاری اشیا و ..... هست ، از دستور Sleep فقط برای شبیه سازی تاخیر استفاده کردم.

http://s6.picofile.com/file/8256251576/project1.zip.html

Mahmood_M
شنبه 29 خرداد 1395, 16:54 عصر
مقادیر تغییر می کنه اما ترسیم نمیشه
برای نمایش مقادیر، می تونید بعد از دادن مقدار جدید، کنترل مورد نظر رو Repaint کنید یا اینکه در انتهای حلقه از Application.ProcessMessages استفاده کنید :


var
I : Integer;
begin
for I := 0 to 50 do
begin
Button1.Caption:= IntToStr(I);
Edit1.Text := IntToStr(I);
Edit1.Repaint;
Label2.Caption := IntToStr(I);
Label2.Repaint;
Sleep(10);
// Application.ProcessMessages;
end;
end;

اما بستگی به عملیاتی داره که در درون حلقه انجام میدید، اگر عملیات طولانی ای هست بهتره از Thread استفاده کنید