Guest program-amador Postado Maio 10, 2004 Denunciar Share Postado Maio 10, 2004 Ola, alguém sabe como execultar uma PROGRESSBAR num FORM enquanto um arquivo é copiado.Usei este comando para Copiar:CopyFile('c:\projeto1.exe','c:\pasta1\projeto1.exe',True)Na verdade o meu programada trabalha em rede, então criei um Atualizador que no caso atualiza o programa nos computadores ao iniciar o window.Eu já havia feito em srquivo BAT, só que eu fui comparar os dois, o que foi feito no Delphi foi quase duas vezes mais rapido do que o arquivo BAT.O ProgressBar é só pra incremetar... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 s3c Postado Maio 10, 2004 Denunciar Share Postado Maio 10, 2004 porque você não copia no padrão Windows?Ele já coloca a barra de progresso. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Ricardo Salles Postado Maio 12, 2004 Denunciar Share Postado Maio 12, 2004 - Coloque uma StatusBar no form.- Adicione dois paineis na StatusBar (propriedade Panels).- Ajuste as propriedades do primeiro painel conforme abaixo: Style = psOwnerDraw Width = 150- Coloque uma ProgressBar no form e mude sua propriedade Visible para false.- No evento OnDrawPanel da StatusBar digite o código abaixo:procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel; const Rect: TRect);begin { Se for o primeiro painel... } if Panel.Index = 0 then begin { Ajusta a tamanho da ProgressBar de acordo com o tamanho do painel } ProgressBar1.Width := Rect.Right - Rect.Left +1; ProgressBar1.Height := Rect.Bottom - Rect.Top +1; { Pinta a ProgressBar no DC (device-context) da StatusBar } ProgressBar1.PaintTo(StatusBar.Canvas.Handle, Rect.Left, Rect.Top); end;end;- Coloque um Button no form- Digite no evento OnClick do Button o código abaixo:procedure TForm1.Button1Click(Sender: TObject);var I: integer;begin for I := ProgressBar1.Min to ProgressBar1.Max do begin { Atualiza a posição da ProgressBar } ProgressBar1.Position := I; { Repinta a StatusBar para forçar a atualização visual } StatusBar1.Repaint; { Aguarda 50 milisegundos } Sleep(50); end; { Aguarde 500 milisegundos } Sleep(500); { Reseta (zera) a ProgressBar } ProgressBar1.Position := ProgressBar1.Min; { Repinta a StatusBar para forçar a atualização visual } StatusBar1.Repaint;end;- Execute e clique no botão para ver o resultado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Arlon Postado Maio 12, 2004 Denunciar Share Postado Maio 12, 2004 o amigo s3c disse:porque você não copia no padrão Windows? Ele já coloca a barra de progresso. agora eu pergunto: como é que se copia com o padrão windows que eu não sei, aliás eu não sei comando de cópia em padrão nenhum!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 s3c Postado Maio 12, 2004 Denunciar Share Postado Maio 12, 2004 Veja a Api SHFileOperation e o parâmetro TSHFileOpStruct Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Arlon Postado Maio 13, 2004 Denunciar Share Postado Maio 13, 2004 Veja a Api SHFileOperation e o parâmetro TSHFileOpStruct Cara desculpa, mas eu não entendo nada dessas paradas aí ainda. Dava pra explicar melhor?? O que é Api? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 s3c Postado Maio 13, 2004 Denunciar Share Postado Maio 13, 2004 Bom, API significa Application Programming Interface.É uma maneira de você interagir diretamente com o sistema operacional.A Api p/ copiar arquivos e pastas é muito simples.Veja o código:uses ShellApi;procedure TForm1.Button1Click(Sender: TObject);var FO:TSHFileOpStruct;begin FillChar(FO, SizeOf(FO), 0); FO.wFunc := FO_COPY; FO.pFrom := 'Caminho origem'; FO.pTo := 'Caminho destino'; FO.fFlags := FOF_ALLOWUNDO; SHFileOperation(FO);end; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Arlon Postado Maio 14, 2004 Denunciar Share Postado Maio 14, 2004 Dexa ver se eu entendi. É uma espécie de código q o próprio windows ou qualquer outro SO usa (tipo, já vem pronto dentro dele) e você também pode usá-los através do Delphi e outras linguagens. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 s3c Postado Maio 14, 2004 Denunciar Share Postado Maio 14, 2004 Isso mesmo Arlon, por ex: a Api SHFileOperation é uma função da Shell32.dll do Windows. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest program-amador
Ola, alguém sabe como execultar uma PROGRESSBAR num FORM enquanto um arquivo é copiado.
Usei este comando para Copiar:
CopyFile('c:\projeto1.exe','c:\pasta1\projeto1.exe',True)
Na verdade o meu programada trabalha em rede, então criei um Atualizador que no caso atualiza o programa nos computadores ao iniciar o window.
Eu já havia feito em srquivo BAT, só que eu fui comparar os dois, o que foi feito no Delphi foi quase duas vezes mais rapido do que o arquivo BAT.
O ProgressBar é só pra incremetar...
Link para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.