Hola cipce22.
Opino igual que
Casimiro, debería ser:
Código Delphi
[-]
...
cont_arr := 0; ....
begin
SetLength(Array_idmatriculas_incorr, cont_arr + 1 );
Array_idmatriculas_incorr[cont_arr]:=dm.IBQuery1.FieldByName('id').AsInteger;
inc(cont_arr,1);
...
También lo podrías escribir de este modo (ahorrándote el contador):
Código Delphi
[-]
...
while not dm.IBQuery1.eof do
begin
if not (dm.IBQuery1.FieldByName('id').AsInteger=campo_id_oficial) then
begin
SetLength(Array_idmatriculas_incorr, Length(Array_idmatriculas_incorr) + 1 );
Array_idmatriculas_incorr[High(Array_idmatriculas_incorr)]:= dm.IBQuery1.FieldByName('id').AsInteger;
end;
dm.IBQuery1.Next;
end;
...
Otra alternativa es darle al arreglo dinámico, el tamaño de una sola vez:
Código Delphi
[-]
...
cont_arr := 0;
SetLength(Array_idMatriculas_incorr, dm.IBQuery1.RecordCount ); while not dm.IBQuery1.eof do
begin
if not (dm.IBQuery1.FieldByName('id').AsInteger=campo_id_oficial) then
begin
Array_idmatriculas_incorr[cont_arr]:= dm.IBQuery1.FieldByName('ID').AsInteger;
Inc(cont_arr, 1);
end;
dm.IBQuery1.Next;
...
Saludos
![Smilie](http://www.clubdelphi.com/foros/images/smilies/smile.gif)