Fórum Erro ao Fechar Aplicação #398253
28/03/2011
0
tenho uma tabela com dois campos
Nome da Tabela: Mestre
Campos: QTDE_SEGMENTOS
MEDIDA
Minha intenção é criar um array dinâmico com n linhas e duas colunas, a quantidade de linhas é obtida pelo numero dos registros da tabela Mestre, e alimentado com um loop para se obter os valores dos registros. Coloquei um memo para ter certeza que a matriz está sendo alimentada. A aplicação funciona, mas quando é encerrada ela libera um erro fatal com a mensagem "RUNTIME ERROR 216 AT 0040342A", segue o código abaixo para vocês testarem
var
Linha : array of array of Integer;
NumRegistros, I : Integer;
begin
NumRegistros:=Form1.CDS_Mestre.RecordCount;
SetLength(Linha,NumRegistros,2);
Memo1.Clear;
I:=0;
CDS_Mestre.First;
while not CDS_Mestre.Eof do
begin
Linha[I,1]:=Form1.CDS_MestreQTDE_SEGMENTOS.AsInteger;
Linha[I,2]:=Form1.CDS_MestreMEDIDA.AsInteger;
memo1.Lines.Append(inttostr(Linha[I,2]));
I:=I+1;
CDS_Mestre.Next;
end;
Agradeço qualquer ajuda.
Luis Neto
Curtir tópico
+ 0Posts
28/03/2011
André Silveira
Linha[I,1]:=Form1.CDS_MestreQTDE_SEGMENTOS.AsInteger;
Linha[I,2]:=Form1.CDS_MestreMEDIDA.AsInteger;
memo1.Lines.Append(inttostr(Linha[I,2]));
I:=I+1;
CDS_Mestre.Next;
não seria:
Linha[I,0]:=Form1.CDS_MestreQTDE_SEGMENTOS.AsInteger;
Linha[I,1]:=Form1.CDS_MestreMEDIDA.AsInteger;
memo1.Lines.Append(inttostr(Linha[I,1]));
I:=I+1;
CDS_Mestre.Next;
Lembre-se de que nos vetores o primeiro item é o 0.
Gostei + 0
28/03/2011
Luis Neto
I:=0;
CDS_Mestre.First;
while not CDS_Mestre.Eof do
begin
Linha[I,1]:=Form1.CDS_MestreQTDE_SEGMENTOS.AsInteger;
Linha[I,2]:=Form1.CDS_MestreMEDIDA.AsInteger;
memo1.Lines.Append(inttostr(Linha[I,2]));
I:=I+1;
CDS_Mestre.Next;
end;
Gostei + 0
28/03/2011
André Silveira
Linha [0,0] e Linha[0,1] é o primeiro elemento da matriz.
Pois do jeito que você fez ele dá erro por estouro de memória, coloca do jeito que eu te falei e faz o teste.
Gostei + 0
28/03/2011
Luis Neto
Valeu, obrigado
Gostei + 0
28/03/2011
Luis Neto
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)