TProgressBar property out of range. O que é isso?

04/03/2008

0

Estou com esse código
pb.Max := mTexto.Count - 1;

No debug o erro da nessa linha.
O erro
---------------------------
Debugger Exception Notification
---------------------------
Project MATERIAIS.exe raised exception class EInvalidOperation with message ´TProgressBar property out of range´. Process stopped. Use Step or Run to continue.
---------------------------
OK   Help   
---------------------------

O que é isso?


Jpauloss

Jpauloss

Responder

Posts

04/03/2008

Delphi_br

risco :lol:

o que é mTexto ???


Responder

04/03/2008

Jpauloss

risco :lol: o que é mTexto ???

Vou postar aqui parte do código
procedure TfrmImportar.Button1Click(Sender: TObject);
var
  fArq: TextFile;  //Variável do Tipo Arquivo de Texto
  Caminho: string; //Variável que armazenará o caminho
  Linha: string;   //Variavel que vai armazinar cada linha
  mTexto: TStringList; //Utilizada para contar as linhas a importar
  i: integer;          //variavel utilizada no contador de linhas Importadas
begin
  Caminho := edtArq.Text; //Varivel vai receber os dados do edit
  AssignFile(fArq, Caminho);
  ReSet(fArq);
  mTexto := TStringList.Create;
  try
    mTexto.LoadFromFile(Caminho);
    pb.Max := mTexto.Count - 1;



Responder

05/03/2008

Edilcimar

uma progressbar só pode ter valores entre 0 e 100, se colocar algum valor fora desta faixa terá este erro, verifique os valores que está passando


Responder

30/03/2017

Roberto Novakosky

Em
pb.Max := mTexto.Count - 1
o correto é
pb.Max := mTexto.Count

Digamos que vc tenha 1000 linhas, se vc deixar o ProgressBar com no máximo 9999, quando vc tentar setar o valor 10000 dará um erro.
Nota: Se o teu windows estiver com o common controls anterior à versão 4.70, o max pode ir até (2^16)-1 = 65535, em versões depois disso o max pode assumir 2^32-1 = 4.294.967.295. É melhor não estourar estes valores.
Se vc precisar de max muito grande, o melhor é vc fazer um cálculo percentual, por exemplo, setar max em 1000, e setar a position proporcionalmente a 1000, assim vc nunca estoura 1000. O valor 1000 acredito que visualmente possui uma ótima resolução para o usuário final.

Roberto Novakosky
Responder

30/03/2017

Roberto Novakosky

Em
pb.Max := mTexto.Count - 1
o correto é
pb.Max := mTexto.Count

Digamos que vc tenha *10.000* linhas, se vc deixar o ProgressBar com no máximo 9999, quando vc tentar setar o valor 10000 dará um erro.
Nota: Se o teu windows estiver com o common controls anterior à versão 4.70, o max pode ir até (2^16)-1 = 65535, em versões depois disso o max pode assumir 2^32-1 = 4.294.967.295. É melhor não estourar estes valores.
Se vc precisar de max muito grande, o melhor é vc fazer um cálculo percentual, por exemplo, setar max em 1000, e setar a position proporcionalmente a 1000, assim vc nunca estoura 1000. O valor 1000 acredito que visualmente possui uma ótima resolução para o usuário final.

Roberto Novakosky
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar