Ir para conteúdo
Fórum Script Brasil
  • 0

Progressbar


Guest program-amador

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

  • 0
Guest Ricardo Salles

- 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.

laugh.gif

Link para o comentário
Compartilhar em outros sites

  • 0

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!!

Link para o comentário
Compartilhar em outros sites

  • 0

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?

Link para o comentário
Compartilhar em outros sites

  • 0

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;

Link para o comentário
Compartilhar em outros sites

  • 0

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.

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...