PDA

View Full Version : بکاربستنProgeressBarدرحین بازکردن فایلtxt



solook
جمعه 26 مهر 1387, 08:54 صبح
با سلام

وقتی یک فایل متنی سنگین رو می خوام با دلفی باز کنم چند ثانیه ای طول میکشه

حالا می خوام تا بازش میکنه progressbar هم حرکت کنه

چطوری می تونم ازش استفاده کنم؟

shervin farzin
جمعه 26 مهر 1387, 13:18 عصر
سلام
شما براي اين كار بايد دو تا مشكل رو حل كنين .
اول اين كه چطوري اين پروسه سنگين رو اجراء كنيد تا باعث Freez شدن فرم نشه .
براي حل اين مشكل ميتونين از نخها براي اين پروسه استفاده كنين . اگه كلمه Thread رو در
همين سايت جستجو كنين به موارد خوبي خواهيد رسيد .
مشكل دوم اينه كه ProgressBar بايد ميزان پيشرفت خوندن فايل رو نشون بده در حالي كه
اين فرايند رو نميشه به طور قطعي پيش بيني كرد كه مثلا يه فايل با حجم X در مدت N ثانيه
ميتونه Load بشه . براي همين يا بايد ProgressBar به طور تخميني حركت كنه يا به جاي اون از
يه كامپوننت ديگه استفاده كنين كه شكل ظاهريش شبيه ProgressBar ولي فقط جنبه گرافيكي
داره و ميزان Progress رو نشون نميده . اين كامپوننت رو هم اگه كلمه ProgressBar رو در همين
سايت جستجو كنين لينك دانلودش رو پيدا ميكني .
موفق باشيد .

nouri2015
شنبه 27 مهر 1387, 12:16 عصر
با چه روشی باز می کنی؟

solook
شنبه 27 مهر 1387, 12:24 عصر
procedure Tform1.PerformFileOpen(const AFileName: string);
begin
ImportMemo.Lines.LoadFromFile(AFileName);
ImportMemo.SetFocus;
ImportMemo.Modified := False;
end;



procedure Tform1.Button2Click(Sender: TObject);
begin
PerformFileOpen(sevenzip1.ExtrBaseDir+'/Temp.txt');
ImportMemo.ReadOnly := ofReadOnly in Open.Options;
end;

merced
شنبه 27 مهر 1387, 17:42 عصر
مي توني با readln بخوني , روش زياد خوبي ممکنه نباشه ولي ميشه بهينه اش کرد.
توي فايل text طول هر خط از 1024 بيشتر نميشه يعني هر خظ 1024 بايت و با داشتن اين دو پارامتر مي توني يه پراسس بار داشته باشي