Não consigo encontrar o erro... por favor, me ajudem...
Fala Galera!
Eu estou ´tentando´ fazer um progressbar numa statusbar enquanto eu gero um txt. O problema quando eu vou gerar o txt, me dá esse erro:
O código é esse:
Por favor, alguém poderia me ajudar com isso???
Eu estou ´tentando´ fazer um progressbar numa statusbar enquanto eu gero um txt. O problema quando eu vou gerar o txt, me dá esse erro:
--------------------------- Debugger Exception Notification --------------------------- Project sqlscritp.exe raised exception class EAccessViolation with message ´Access violation at address 004C68EA(esses numeros variam) in module ´SQLSCRITP.EXE´. Read of address FFFFFFFF´. Process stopped. Use Step or Run to continue. --------------------------- OK Help ---------------------------
O código é esse:
Arquivo := TStringList.Create; Queryexport.First; while not Queryexport.Eof do begin For I:=progressBar1.Min to ProgressBar1.Max do begin ProgressBar1.position:= I; StatusBar1.Repaint; Linha := ´´; For nI := 0 to Queryexport.FieldCount-1 do begin Linha := Linha + trim(Queryexport.Fields[nI].AsString)+´|´; Arquivo.Add( Linha ); Queryexport.Next; end; Arquivo.SaveToFile(´c:\abkt\pedido.txt´); Arquivo.Free; ProgressBar1.Position:=ProgressBar1.Min; StatusBar1.Repaint; end; end;
Por favor, alguém poderia me ajudar com isso???
Bueno
Curtidas 0
Respostas
Fabio.hc
18/02/2004
Vc tem que salvar e liberar o arquivo depois do que terminar o for:
while not Queryexport.Eof do begin For I:=progressBar1.Min to ProgressBar1.Max do begin ProgressBar1.position:= I; StatusBar1.Repaint; Linha := ´´; For nI := 0 to Queryexport.FieldCount-1 do begin Linha := Linha + trim(Queryexport.Fields[nI].AsString)+´|´; Arquivo.Add( Linha ); Queryexport.Next; end; ProgressBar1.Position:=ProgressBar1.Min; StatusBar1.Repaint; end; Arquivo.SaveToFile(´c:\abkt\pedido.txt´); Arquivo.Free; end;
GOSTEI 0
Bueno
18/02/2004
Fabio, obrigado pela ajudam, mas não resolveu meu problema não...
GOSTEI 0
Uhligmichael
18/02/2004
o [b:a3dadc2926]Arquivo.Free;[/b:a3dadc2926] deve ficar fora do While também!
GOSTEI 0
Fabio.hc
18/02/2004
Arquivo := TStringList.Create;
Queryexport.First;
while not Queryexport.Eof do
begin
For I:=progressBar1.Min to ProgressBar1.Max do
begin
ProgressBar1.position:= I;
StatusBar1.Repaint;
Linha := ´´;
For nI := 0 to Queryexport.FieldCount-1 do
begin
Linha := Linha + trim(Queryexport.Fields[nI].AsString)+´|´;
Arquivo.Add( Linha );
Queryexport.Next;
end;
Arquivo.SaveToFile(´c:\abkt\pedido.txt´);
Arquivo.Free;
ProgressBar1.Position:=ProgressBar1.Min;
StatusBar1.Repaint;
end;
end;
o Arquivo.Free; deve ficar fora do While também!
Além desta obervação do uhligmichael o [b:280ed662ab]next[/b:280ed662ab] também tem que estar fora do for e vc só precisa de 1 for:
while not Queryexport.Eof do begin ProgressBar1.position:= I; StatusBar1.Repaint; Linha := ´´; For nI := 0 to Queryexport.FieldCount-1 do begin Linha := Linha + trim(Queryexport.Fields[nI].AsString)+´|´; Arquivo.Add( Linha ); end; ProgressBar1.Position:=ProgressBar1.Min; StatusBar1.Repaint; Queryexport.Next; end; Arquivo.SaveToFile(´c:\abkt\pedido.txt´); Arquivo.Free;
GOSTEI 0