Barra de Progresso
Estou criando uma função para gerar alguns dados e quero colocar uma Barra de Progresso, só que a barra de progresso pode ser vários tipos e de terceiros, então não tenho como colocar uma função assim
procedure Dados(Barra: TProgressBar);
Por que nem todos funcionam.
Como faço para resolver isso??
procedure Dados(Barra: TProgressBar);
Por que nem todos funcionam.
Como faço para resolver isso??
Rudá
Curtidas 0
Respostas
Motta
09/02/2006
Use o typecast
algo assim
Como os métodos devem variar um if para cada barra, não me ocorre outra solução.
algo assim
procedure Pula (barra : TObject,passo,integer); begin if barra is TProgressBar then TProgressBar(barra).StepBy(passo); if barra is TBarraQualquer then TBarraQualquer(barra).PulaPula(passo); // outra barra end;
Como os métodos devem variar um if para cada barra, não me ocorre outra solução.
GOSTEI 0
Rudá
09/02/2006
Valeu pela ajuda, mas assim não adianta, já que eu não tenho como saber qual é que o cara que for usar o componente vai colocar o progressbar
Eu pensei em fazer assim.
procedure TForm1.Dados(var Posicao: Integer);
begin
Posicao:= 100;
end;
E na hora de executar fazer isso
procedure TForm1.Button1Click(Sender: TObject);
begin
Dados(ProgressBar.Position);
end;
Da o erro na hora de copilar [b:c4e74a450d]Constant object cannot be passed as var parameter[/b:c4e74a450d] na linha [b:c4e74a450d]Dados(ProgressBar.Position);[/b:c4e74a450d]
Tem como ver isso???
Eu pensei em fazer assim.
procedure TForm1.Dados(var Posicao: Integer);
begin
Posicao:= 100;
end;
E na hora de executar fazer isso
procedure TForm1.Button1Click(Sender: TObject);
begin
Dados(ProgressBar.Position);
end;
Da o erro na hora de copilar [b:c4e74a450d]Constant object cannot be passed as var parameter[/b:c4e74a450d] na linha [b:c4e74a450d]Dados(ProgressBar.Position);[/b:c4e74a450d]
Tem como ver isso???
GOSTEI 0
Motta
09/02/2006
O que exatamente vc está criando ?
Como será usado ? Por outros ?
Como os métodos diferem para as Classes não vejo como fazer algo generico.
Como será usado ? Por outros ?
Como os métodos diferem para as Classes não vejo como fazer algo generico.
GOSTEI 0
Delphi32
09/02/2006
Não sei se é o caso, mas muitos componentes utilizam um evento OnProgress no qual uma das variáveis é a posição atual. O usuário pode ir lá e fazer o que quiser com esse valor (jogar no componente barra de progresso que ele utilizar).
Não sei se te ajuda, mas fora a opção dada pelo Motta, essa é a única maneira que consegui imaginar...
t+!
Não sei se te ajuda, mas fora a opção dada pelo Motta, essa é a única maneira que consegui imaginar...
t+!
GOSTEI 0
Rudá
09/02/2006
Estou criando um aplicativo para fazer o backup de vários tipos de banco de dados e para mostrar o processo, usar componentes para mostrar o processo, então quer dizer que o cara que for usar(instalar meu componete e for usar ele) vai colocar uma barra de progresso que eu não vou saber qual é então eu precisso que a função atualize a variável do componente(progress).
GOSTEI 0
Delphi32
09/02/2006
Lembrei outra...
uma outra opção, mas que eu acho que você não vai querer usar, seria a de colocar uma propriedade ProgressBar no componente... O problema é que dessa maneira você vai restringir somente a esse componente...
t+!
uma outra opção, mas que eu acho que você não vai querer usar, seria a de colocar uma propriedade ProgressBar no componente... O problema é que dessa maneira você vai restringir somente a esse componente...
t+!
GOSTEI 0
Gandalf.nho
09/02/2006
Dê uma olhada na biblioteca RxLib, se não me engano tem uma função que tem uma proposta semelhante, talvez possa ajudar a montar a sua.
GOSTEI 0
Rudá
09/02/2006
Criei um Event OnBackupProgresso
Nesse evento coloquei a posição, ai o cara que for usar pega a posicao e manda para o seu componente;
Valeu pela ajuda pessoa.
Nesse evento coloquei a posição, ai o cara que for usar pega a posicao e manda para o seu componente;
Valeu pela ajuda pessoa.
GOSTEI 0