Dokladny ProgressBAr

0

Witam!
Uzywa takiego kodu:
ProgressBar1.Position := Round((NMSMTP1.BytesSent div NMSMTP1.BytesTotal)*100);

ale ten kod jest nie dokladny ProgressBar nie idze paseczek po paseczku tylko czekam na wysylanie i nagle caly sie laduje!

0

Bo pewnie powinieneś odświeżać co jakiś czas ten progressbar. Spróbuj na formularz wstawić Timera i tę linijke kodu wstawić do zdarzenia obsugującego TIMER.
NP.

procedure TForm1.Timer1Timer(Sender: TObject);
begin
ProgressBar1.Position := Round((NMSMTP1.BytesSent div NMSMTP1.BytesTotal)*100);

end;

Ustaw jeszcze w timerze odpowiedni czas...Mam nadzieje, ze pomoże

0

po

ProgressBar1.Position := ....

dodaj

Application.ProcessMessages
0

ProgressBar1.Position := Round((NMSMTP1.BytesSent div NMSMTP1.BytesTotal)*100);

Ja bym zmienił div na /, bo div to jest dzielenie całkowite (w tym wypadku jedyny wynik to 0 lub 1). Czyli:

ProgressBar1.Position := Round((NMSMTP1.BytesSent / NMSMTP1.BytesTotal)*100);

// może raczej (NMSMTP1.BytesSent*100) div NMSMTP1.BytesTotal - ŁF

0

a jak to zrobic na TidHTTP ?

0

ProgressBar1.Position := Round((NMSMTP1.BytesSent div NMSMTP1.BytesTotal)*100);

Ja bym zmienił div na /, bo div to jest dzielenie całkowite (w tym wypadku jedyny wynik to 0 lub 1). Czyli:

ProgressBar1.Position := Round((NMSMTP1.BytesSent / NMSMTP1.BytesTotal)*100);

A nie wygodniej

ProgressBar1.Max := NMSMTP1.BytesTotal;
ProgressBar1.Position := NMSMTP1.BytesSend;

??

0

Nie jest to dokladne! Nie wiem dlaczego ale jest nadal tak samo! szkoda!

0

moze p

rograessbar1.refresh

? :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1