Progressbar

Delphi

28/05/2008

Como fazer uma progressbar andar dentro desse código. O código funciona, até pq é bem simples, apenas gravar um txt vindo de uma stringlist.
procedure TfrmLe_ECF.cxButton1Click(Sender: TObject); begin Screen.Cursor := crHourGlass; CapturaStatus; AssignFile(arq,ExtractFilePath(Application.ExeName)+´\Teste.TXT´); Rewrite(arq); Write(arq,guardastatus.Text); CloseFile(arq); Screen.Cursor := crDefault; end;

CapturaStatus é uma procedure onde eu apenas populo uma Stringlist, só isso. Guardastatus é minha Stringlist populada na procedure Capturastatus. Quero colocar uma progressbar aí, para ver o andamento. Como?


Paulo

Paulo

Curtidas 0

Respostas

Eniorm

Eniorm

28/05/2008

vamos facilitar mais a coisa...

já que vc usa o StringList

faz assim StringList.SaveToFile(´nomedoarquivo.txt´);


GOSTEI 0
Paulo

Paulo

28/05/2008

Não entendi o porque do saveToFile, já que está funcionando o meu código. Só quero colocar uma ProgressBar para dar um visual melhor do que o cursor como eu estou fazendo.


GOSTEI 0
Eniorm

Eniorm

28/05/2008

quero dizer que é mais simples vc usar o SaveToFile do que implementar toda essa sua rotina para salvar o conteúdo do stringlist num arquivo de texto

vc usa SaveToFile para salvar, e LoadFromFile para abrir um arquivo txt


GOSTEI 0
Paulo

Paulo

28/05/2008

Mas como colocaria um Progressbar aí usando um SaveToFile? O Meu caso é somente o Progressbar e ele tem que da em algum lugar,eheheheh. Fiz assim, mas não anda. Ele fica em 0 e depois vai a 100¬. Veja o código:
procedure TfrmLe_ECF.cxButton1Click(Sender: TObject); var i: Integer; begin Screen.Cursor := crHourGlass; CapturaStatus; AssignFile(arq,ExtractFilePath(Application.ExeName)+´\Teste.TXT´); Rewrite(arq); pb.Properties.Max := guardastatus.Count; pb.Position := 0; for I := 0 to GuardaStatus.Count - 1 do begin pb.Position := pb.Position; WriteLn(Arq, GuardaStatus.Text[i]); end; Write(arq,guardastatus.Text); CloseFile(arq); Screen.Cursor := crDefault; end;



GOSTEI 0
Paulo

Paulo

28/05/2008

O código correto:
procedure TfrmLe_ECF.cxButton1Click(Sender: TObject); var i: Integer; begin Screen.Cursor := crHourGlass; CapturaStatus; AssignFile(arq,ExtractFilePath(Application.ExeName)+´\Teste.TXT´); Rewrite(arq); pb.Properties.Max := guardastatus.Count; pb.Position := 0; for I := 0 to GuardaStatus.Count - 1 do begin pb.Position := pb.Position+i; WriteLn(Arq, GuardaStatus.Text[i]); end; Write(arq,guardastatus.Text); CloseFile(arq); Screen.Cursor := crDefault; end;



GOSTEI 0
Eniorm

Eniorm

28/05/2008

a menos que vc tenha um arquivo texto gigante, a operação será tão rápida que não da tempo de vc notar o incremento do progressbar


GOSTEI 0
POSTAR