Fórum Mensagem de erro: quot;List index is out of boundsquot; #298576

06/10/2005

0

O q significa ListIndex is out of bound?



[b:6c7a1b3fc0][color=blue:6c7a1b3fc0]O Titulo desta mensagem foi editado por Vinicius2K:[/color:6c7a1b3fc0][/b:6c7a1b3fc0] [list:6c7a1b3fc0][b:6c7a1b3fc0][color=red:6c7a1b3fc0][*:6c7a1b3fc0]O título deve estar condizente com a mensagem. [*:6c7a1b3fc0]O tópico não foi bloqueado em respeito aos colegas que postaram respostas.[/color:6c7a1b3fc0][/b:6c7a1b3fc0][/list:u:6c7a1b3fc0] Peço que leia atentamente as [url=http://forum.clubedelphi.net/viewtopic.php?t=6689]Regras de Conduta[/url] e se algum esclarecimento sobre o funcionamento do fórum ou sobre as Regras de Conduta for necessário, envie-me uma [url=http://forum.clubedelphi.net/privmsg.php?mode=post&u=2796]Mensagem Particular[/url].



Paulo

Paulo

Responder

Posts

06/10/2005

Bruno Belchior

Isso quer dizer q vc está tentando acesssar um nó de uma lista q não existe... como em um TStringList com dois nós você tentar acessar o terceiro nó...
var
  vStringList: TStringList;
  Cont: Byte;
begin
  vStringList := TStringList.Create;
  vStringList.CommaText := ´Nó1, Nó2´;
  for Cont := 0 to 2 do
    ShowMessage(vStringList[Cont]); // nessa linha ocorerá o erro...
  vStringList.Free;
end;



Responder

Gostei + 0

06/10/2005

Paulo

Creio que não seja isso, pois eu não estou usando nenhum componente do Tipo StringList. Eu penso, que tem a ver com o SO, tbm, ou memória, ou seja, Hardware. Mas pode ser outra coisa tbm. Só queria entender. vou reiniciar a máquina e ver se continua, pois apareceu do nada, estava funcionando, não fiz nada e começou a dar o erro.


Responder

Gostei + 0

06/10/2005

Bruno Belchior

Indice da Lista está fora do limite
Não quis dizer que [b:02e3017853]apenas[/b:02e3017853] uma TStringList pode ultrapassar limites, qualquer classe q seja uma lista pode, só a usei como exemplo...


Responder

Gostei + 0

06/10/2005

Massuda

...não estou usando nenhum componente do Tipo StringList...
Como disse o Bruno, não é necessariamente um TStringList, mas esse erro é gerado normalmente por qualquer coisa que tenha um TStrings. Por exemplo, um ComboBox ou ListBox. Em que situação está ocorrendo o erro?


Responder

Gostei + 0

06/10/2005

Paulo

Beleza, é eu entendi, mas é q depois do post, nada mais se pode fazer, mas entendi sim, e eu estou usando um Grid. O que eu quero, fazer uma tela única de consulta, por isso, eu monto o Grid dinamicamente, ou seja, as Columns, os captions dos títulos, o valor do campo, e etc... Tudo é controlado por uma variável, que tem seu valor alterado, de acordo com o formulário. Uma var do tipo integer, e um case of na variável, para exexcutar o q quero, de acordo com o valor da var. Estava funcionando, e derrepente, começou a dar esse erro. Tô tentando aqui, mas ainda não consegui nada.
tipo assim:

case var of 0:begin dm.simpledataset1.close; dm.simpledataset1.commandtext:=´select nome from tabela´; dm.simpledataset1.open; grid.columns[0].width:=310; grid.columns[0].title.caption:´Nome´; grid.columns[0].FieldName:=´nomenatabela´; end; end;

E para cada form, vou preenchendo meu case. Sendo que o datasource, é o mesmo.


Responder

Gostei + 0

06/10/2005

Vinicius2k

Colega,
dm[color=red:d4e4597f7f].[b:d4e4597f7f]simpledataset[/b:d4e4597f7f][/color:d4e4597f7f]1.close;

Me arrisco a dizer que eis a origem misteriosa do seu problema.
Sugestão: Não utilize TSimpleDataSet (ou TSQLDataSet no Delphi 6).

T+


Responder

Gostei + 0

07/10/2005

Bruno Belchior

Sugestão: Não utilize TSimpleDataSet (ou TSQLDataSet no Delphi 6)
Poque Vinícius? Existe algum bug com esses componentes?


Responder

Gostei + 0

07/10/2005

Vinicius2k

Muitos ! A própria Borland não recomenda seu uso. A grande maioria dos erros ´inexplicaveis´ provém deles.
Além do fato de que utilizando em separado DataSet -> Provider -> CDS vc tem muito mais recursos(métodos e propriedades) disponíveis.

T+


Responder

Gostei + 0

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

Aceitar