Fórum Gauge ou ProgressBar na copia dos Aquivo, alguem sabe ? #215336
19/02/2004
0
procedure TForm1.Button2Click(Sender: TObject);
var
SR: TSearchRec;
I: integer;
Origem, Destino: string;
begin
I := FindFirst(´C: \Origem\*.*´, faAnyFile, SR);
while I = 0 do begin
if (SR.Attr and faDirectory) <> faDirectory then begin
Origem := ´C: \Origem\´ + SR.Name;
Destino := ´A: \Destino\´ + SR.Name;
if not CopyFile(PChar(Origem), PChar(Destino), true) then
ShowMessage(´Erro ao copiar ´ + Origem + ´ para ´ + Destino);
end;
I := FindNext(SR);
end;
end;
Jairo-go
Curtir tópico
+ 0Posts
19/02/2004
Lucas Silva
Nele você tem q colcar o número de repetições do while...
Geralemte em query você coloca o RecordCount;
procedure TForm1.Button2Click(Sender: TObject); var SR: TSearchRec; I: integer; Origem, Destino: string; begin Gauge.Min := 0; I := FindFirst(´C: \Origem\*.*´, faAnyFile, SR); while I = 0 do begin GauGe.Progress := GauGe.Progress + 1; if (SR.Attr and faDirectory) <> faDirectory then begin Origem := ´C: \Origem\´ + SR.Name; Destino := ´A: \Destino\´ + SR.Name; if not CopyFile(PChar(Origem), PChar(Destino), true) then ShowMessage(´Erro ao copiar ´ + Origem + ´ para ´ + Destino); end; I := FindNext(SR); end; end;
Gostei + 0
19/02/2004
Lucas Silva
Se for pqno coloque um Progress Bar....
Gostei + 0
20/02/2004
Bolus
Procure na Internet o Componente FindFile, nele você coloca o Diretório Inicial, o Filtro e ele devolve em uma propriedade (não lembro agora qual) uma Lista contendo o nome do Arquivos. Como essa propriedade é do Tipo TStringList, você terá o numero de Interações que precisa para informar o valor maximo de interações.....
Ficaria assim.
Procedure TForm1.Button2Click(Sender: TObject); var Arquivos: TFindFile; I: integer; Origem, Destino: string; begin Arquivos.Filter := ´*.*´; Arquivos.Directory := ´C:\Origem´; Arquivos.Execute; For I := 0 to Arquivos.FileNames.Count-1 do begin ProgressBar.Progress := Trunc((I*100)/FileNames.Count); Origem := ´C:\Origem\´ + Arquivos.FileNames[I]; Destino := ´A:\Destino\´ + Arquivos.FileNames[I]; if not CopyFile(PChar(Origem), PChar(Destino), true) then ShowMessage(´Erro ao copiar ´ + Origem + ´ para ´ + Destino); end; end;
Espero ter ajudado....
Gostei + 0
20/02/2004
Lucas Silva
Qualquer qualquer computador que você for editar o projetos, irá ter q ter o componentes instalados e tudo mais...
Já passei muita raiva por isto..
Pense bem antes de instalar componentes do delphi.
Falow!
Gostei + 0
20/02/2004
Bolus
Você não precisará instalar o componente, pois ele foi criado em Object Pascal e contem os Fontes, ou seja, você pode simplesmente incluir no USES e coloca o .PAS no diretorio de LIB ou no diretório do Projeto....
Obrigado.....
Afinal ,muitas vezes não precisamos recriar a roda, somente melhora-lá..
Gostei + 0
20/02/2004
Lucas Silva
Qualquer computador que você for editar seu projeto, vc vai ter que instalar ele também...
Eu acho isto muito complicado......
Isso que eu quis dizer.....
Gostei + 0
20/02/2004
Lucas Silva
já que o delphi te disponibiliza um componente, pra que você vai baixar outro componente, [b:cde49dff10]semelhante[/b:cde49dff10] a ele.
Gostei + 0
20/02/2004
Bolus
somente coloquei o componente, pois ele já traz todos os Arquivos contindos no Diretorio de Origem, assim antes de começar a cópia dos arquivos o Programador já tem a disposição a quantidade de Arquivos e assim poderá informar o percentual correto.....
Já no FindFirst/FindNext, ele não saberá quantos arquivos estará transmitindo.
Como vem com o Fonte, trato como fosse um arquivo normal, ou seja coloco no diretorio do programa e quando preciso levar os fontes somente compacto o diretorio e o componente vai junto, não sendo preciso nenhuma configuração....
Já utilizei muito o FindFirst/FindNext, tanto no Delphi como na Linguagem C/C++....
Também considero que devemos utilizar o minimo de Componentes de Terceiro, pois assim fica mais portavel o Programa....Mas as vezes precisamos de algumas facilidades que não dispomos no componente Padrão do delphi, por isso sempre procuro Componentes com Fonte.... E que possam ser incluidos diretos no Fonte sem precisar instalar no Delphi....
Até mais,
Um abraço....
Gostei + 0
21/02/2004
Nerdex
Os componentes que tu instala no Delphi e usará em um projeto, este, ficará, o código do componente grudado no teu projeto, ou seja no teu .exe, assim como todos os componentees nativos do Delphi fazem...
Sendo assim, vc não precisará, de forma algum, instalar components nas máquinas que vc instalar o teu projeto. além do mais componentes são geralmente ´vistas´, somente pelo compilador Delphi...
E o seguinte...existem com certeza, melhores componentes, do que os nativos do Delphi, por aí....
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)