ورود

View Full Version : نمایش load شدن صفحه در یک label



Batman
یک شنبه 21 مرداد 1386, 09:03 صبح
با سلام
دوستان میخواستم بپرسم چجوری میتونم میزان load شدن یه صفحه اینترنتی رو در یک label توی دلفی به صورت % نشون بدم
ممنون

vcldeveloper
یک شنبه 21 مرداد 1386, 16:27 عصر
از چه کامپوننتی استفاده می کنید؟ WebBrowser و idHTTP هر دو رویدادهایی دارند که مقدار لود شدن صفحه را بصورت پارامتر در اختیار شما قرار می دهند. کافیه است که برای این رویداد کدی شبیه این بنویسید:


procedure TForm1.WebBrowser1ProgressChange(Sender: TObject; Progress,
ProgressMax: Integer);
begin
Label1.Caption := Format('Page Load: %d %',[(Progress * 100) div ProgressMax]);
end;

Batman
یک شنبه 21 مرداد 1386, 19:35 عصر
با سلام
جناب کشاورز این کد رو تست کردم به محض اینکه به 100 میرسه خطای زیر رو میده
Division by zero
من از webbrowser استفاده میکنم
در ضمن چجوری میشه علامت % رو هم کنارش نشون داد
ممنونم

vcldeveloper
دوشنبه 22 مرداد 1386, 11:16 صبح
احتمالا زمانی که لود صفحه تمام می شود، مقدار ProgressMax صفر می شود. این را می توانید خودتان کنترل کنید تا در صورت صفر شدن ProgressMax عمل تقسیم صورت نگیرد.

در ضمن چجوری میشه علامت % رو هم کنارش نشون داد
کد بالا باید علامت % را هم نشان دهد. می تونید خودتون بهش اضافه کنید. در ضمن مجبور نیستید که حتما از این روش و با استفاده از Format این کار را انجام دهید. این فقط یک مثال ساده بود که در کدام رویداد و به چه شکل می توانید میزان لود صفحه را متوجه شوید.

Batman
دوشنبه 22 مرداد 1386, 13:31 عصر
جناب کشاورز ممکنه کد رو بذاری چون من یادم قبلا هم تست کردم نشد اینجوری

if progressmax=0 then ...
خوب بعدش چی
ممنونم

vcldeveloper
سه شنبه 23 مرداد 1386, 03:52 صبح
یه چیزی شبیه این:

if ProgressMax > 0 then
Label1.Caption := Format('Page Load: %d %',[(Progress * 100) div ProgressMax])
else
Label1.Caption := 'Page Completed';

Batman
سه شنبه 23 مرداد 1386, 07:06 صبح
با سلام
جناب کشاورز باز هم error میده تمام کد رو توی webbrowser1.progresschange نوشتم اینم خطا

project project1.exe raised exception EDivByZero with message 'division by zero' proccess stopped. use step or run to continue
با تشکر

Batman
یک شنبه 28 مرداد 1386, 07:48 صبح
با سلام
جناب کشاورز ممونم حلش کردم
در قسمت Else یه Exit گذاشتم و برای نمایش % هم دوبار از %استفاده کردم یعنی این


if ProgressMax > 0 then
Label1.Caption := Format('[Page Load: %d %%]',[(Progress * 100) div ProgressMax])
else
begin
Label1.Caption := 'Page Completed';
Exit
end;

بهر حال از کمک شما بسیار سپاسگذارم