PDA

View Full Version : نمایش % پیشرفت در progress bar



nobody.gu3st
دوشنبه 26 دی 1390, 10:59 صبح
سلام دوستان میخواستم بدوم چطور میشه % پیشرفت progressbar رو توی یک label نشان داد
1%
2%
...
100%

BORHAN TEC
دوشنبه 26 دی 1390, 11:54 صبح
TProgressbar که در VCL وجود دارد، رویداد OnChaneg ندارد و برای این کاری که مد نظر شما است باید از یک راه دیگر(به عنوان مثال یک تامر و یا ...) استفاده کنید و یا یک کلاس از آن مشتق کرده و ویژگی های مورد نظر خود را به آن اضافه کنید. البته راه بسیار ساده تر استفاده از کامپوننت TrzProgressBar است که در مجموعه Raize Components قرار دارد و باید بگویم که این کامپوننت رویداد OnChange هم دارد.

SAASTN
دوشنبه 26 دی 1390, 21:07 عصر
خوب ProgressBar رو اجانب که پر نمی کنن، همونجایی که می بریش جلو Lable رو هم تغییر بده:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
ProgressBar1.StepIt;
Caption := Format('%%%d completed...', [ProgressBar1.Position])
end;

nobody.gu3st
سه شنبه 27 دی 1390, 08:41 صبح
ممنون SAASTN جان میخواستم بدونم رنگ سبز (موقع لود ) progress رو میشه تغییر داد ؟ چند تا کد رو تست کردم جواب نگرفتم

Mask
سه شنبه 27 دی 1390, 09:04 صبح
اجانب
فکر کنم منظورتون اجنه بود:لبخند:
این یه نمونه : خودتون هر جور دلتون میخاد تغیرش بدید.

procedure TForm1.Timer1Timer(Sender: TObject);
begin
ProgressBar1.Position:=ProgressBar1.Position+1;
if ProgressBar1.Position=50 then
begin
ProgressBar1.Brush.Color := clFuchsia;
SendMessage(ProgressBar1.Handle, PBM_SETBARCOLOR, 0, clAqua) ;
end;
end;

BORHAN TEC
سه شنبه 27 دی 1390, 09:53 صبح
برنامه ای که جناب Gold قرار داده ان زمانی درستکار می کنه که برنامه شما از تم ویندوز استفاده نکنه، البته باید یونیت commctrl رو هم اضافه کنید. در چنین شرایطی من باز هم TrzProgressBar موجود در مجموعه Raize Components رو توصیه می کنم که در زیر هم عکسی در مورد آن را می توانید مشاهده کنید:

BORHAN TEC
سه شنبه 27 دی 1390, 10:19 صبح
فکر کنم منظورتون استفاده کنه هستش.
نه، منظورم اینه که این برنامه موقعی درست کار می کنه که برنامه ما از تم های کلاسیک ویندوز استفاده کنه.