progress bar (falta pouco)

20/12/2003

0

Pessoal,

Tenho o seguinte problema para minha progress bar funcionar a contento:

Ela está funcionando... Incrementando...
Mas ele completa a barra antes de concluir o relatório...
Eu exibo a porcentagem do relatório no título do form da progress bar, mas a pb conclui e o título continua alterando (o que está correto, o errado é a Pb terminar antes)!!!
Acho que o que está errado é a quantidade de posições que estou mandando acrescentar, mas alterei o valor step e não notei diferenca...
O que poderá ser?


Total := FrmMapa.IBQuery1.RecordCount;
Cont := 0;

FrmBarra := TFrmBarra.Create(Application);
FrmBarra.Caption := ´Concluindo Relatório: 0 ¬´;
FrmBarra.Barra.Max := Total;
FrmBarra.Show;

While Not FrmMapa.IBQuery1.Eof Do
Begin
Cont := Cont +1;
FrmBarra.Barra.Position := FrmBarra.Barra.Position + Cont;
FrmBarra.Barra.Update;

[Código]

Percent := (Cont*100) / Total;
Percent := StrToFloat(FormatFloat(´#0´,Percent));
FrmBarra.Caption := ´Concluindo Relatório: ´ + FloatToStr(Percent) + ´ ¬´;
End;
FrmBarra.Free;


Rafaelunp

Rafaelunp

Responder

Posts

20/12/2003

Maicongabriel

Total := FrmMapa.IBQuery1.RecordCount; Cont := 0; FrmBarra := TFrmBarra.Create(Application); FrmBarra.Caption := ´Concluindo Relatório: 0 ¬´; FrmBarra.Barra.Max := Total; FrmBarra.Show; While Not FrmMapa.IBQuery1.Eof Do Begin Cont := Cont +1; FrmBarra.Barra.Position := FrmBarra.Barra.Position + Cont; FrmBarra.Barra.Update; [Código] Percent := (Cont*100) / Total; Percent := StrToFloat(FormatFloat(´#0´,Percent)); FrmBarra.Caption := ´Concluindo Relatório: ´ + FloatToStr(Percent) + ´ ¬´; End; FrmBarra.Free;


Talvez assim::

  Total := FrmMapa.IBQuery1.RecordCount;
  Cont := 0;

  FrmBarra := TFrmBarra.Create(Application);
  FrmBarra.Caption := ´Concluindo Relatório: 0 ¬´;
  FrmBarra.Barra.Max := Total;
  FrmBarra.Show;
  { certifica que inicia no primeiro registro }
  FrmMapa.IBQuery1.First;
  While Not FrmMapa.IBQuery1.Eof Do
  Begin
    { incrementa a variavel }
    Inc(Cont);
    { controla a posição pelo numero do registro atual }
    FrmBarra.Barra.Position := FrmMapa.IBQuery1.RecNo;
    FrmBarra.Barra.Update;
    Percent := (Cont*100) / Total;
    Percent := StrToFloat(FormatFloat(´#0´,Percent));
    FrmBarra.Caption := ´Concluindo Relatório: ´ + FloatToStr(Percent) + ´ ¬´;
    { pula para o proximo registro }
    FrmMapa.IBQuery1.Next;
  End;
  FrmBarra.Free;



Responder

20/12/2003

Rafaelunp

Valeu Cara!!
Era isso mesmo!!


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar