Fórum Problema com Matriz #398547
31/03/2011
0
Estou com um problema que ainda não identifiquei numa operação com Matriz, é o seguinte, eu tenho uma tabela em que um dos campos se chama QTDE_SEGMENTOS, entao eu quero preencher um Memo com os dados contidos no campo MEDIDA. A tabela esta preenchida assim:
MEDIDA QTDESEGMENTOS
Registro 1 : 803 7
Registro 1 : 503 7
Registro 1 : 203 7
O código abaixo faz esta operação, mas quando o programa é encerrado ele acusa um erro fatal.
procedure TForm1.Button7Click(Sender: TObject);
var
Matriz: array of integer;
A, NumReg: Integer;
begin
NumReg:=Form1.CDS_Mestre.RecordCount;
SetLength(Matriz,NumReg);
Memo1.Clear;
CDS_Mestre.First;
while not CDS_Mestre.Eof do
begin
for A:= 0 to Form1.CDS_MestreQTDE_SEGMENTOS.AsInteger-1 do
begin
Matriz[A]:= Form1.CDS_MestreMEDIDA.AsInteger;
Memo1.Lines.Add(inttostr(Matriz[A]));
end;
CDS_Mestre.Next;
end;
end;
Luis Neto
Curtir tópico
+ 0Posts
31/03/2011
Luis Neto
A tabela está preenchida assim
MEDIDA QTDESEGMENTOS
Registro 1 : 803 7
Registro 2 : 503 7
Registro 3 : 203 7
Gostei + 0
31/03/2011
Marco Salles
Gostei + 0
31/03/2011
Luis Neto
Gostei + 0
31/03/2011
Marco Salles
tem mais coisas neste form do que o este método
de mais detalhes
Gostei + 0
31/03/2011
Luis Neto
Gostei + 0
01/04/2011
Emerson Nascimento
procedure TForm1.Button7Click(Sender: TObject);
var
Matriz: array of integer;
A, NumReg: Integer;
begin
NumReg:=Form1.CDS_Mestre.RecordCount;
SetLength(Matriz,NumReg); <--- array criado com 3 elementos
Memo1.Clear;
CDS_Mestre.First;
while not CDS_Mestre.Eof do
begin
for A:= 0 to Form1.CDS_MestreQTDE_SEGMENTOS.AsInteger-1 do <--- serão 7 iterações, visto que o campo tem conteúdo 7
begin
Matriz[A]:= Form1.CDS_MestreMEDIDA.AsInteger; <-- aqui pode ocorrer um erro, pois não há 7 elementos
Memo1.Lines.Add(inttostr(Matriz[A]));
end;
CDS_Mestre.Next;
end;
end;
Gostei + 0
01/04/2011
Marco Salles
fechar . A não ser que vc não esteja executando direto no .exe e não pelo delphi
Mas de qualquer modo o emerson atentou mais para o codigo e reportou bem o erro
Gostei + 0
01/04/2011
Luis Neto
O Emerson está certíssimo. Vou alterar o código e ver no que dá.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)