Fields w Tablicach Dynamicznych

0

chce pod tablice dynamiczna wczytac wszystkie elementy oto kod :

 
var
tab: array  of string;
i:integer;
begin
repeat
 setlength(tab,i);
 tab[i]:=form3.ADOQuery1.Fields.Fields[1].AsString;
 showmessage(tab[i]);
 i:=i+1;
 form3.ADOQuery1.Next;
until form3.ADOQuery1.eof;
end;

Lecz Wyskakuje mi błąd, jest możliwe aby to zadziałało ?

0

może to pomoże: setlength(tab,i+1);

0
var
  tab: array  of string;
  i:integer;
begin
  i:=1;
  repeat
    setlength(tab,i);
    tab[i-1]:=form3.ADOQuery1.Fields.Fields[1].AsString;
    showmessage(tab[i-1]);
    i:=i+1;
    form3.ADOQuery1.Next;
  until form3.ADOQuery1.eof;
end;
0

pelsta inaczej mowiac zmienic tylko i:=0 i to samo jest , ale juz sobie poradizlem dzieki za pomoc
o to rozwiazanie

 procedure TForm6.Button1Click(Sender: TObject);
var
tab: array  of string;
i,oskar:integer;
begin
form6.Button1.Enabled:=false;
form6.Button2.Enabled:=true;
oskar:=0;
repeat
 setlength(tab,i);
 tab[oskar]:=form3.ADOQuery1.Fields.Fields[1].AsString;
 i:=i+1;
 oskar:=oskar+1;
 form3.ADOQuery1.Next;
 until form3.ADOQuery1.eof;
 oskar:=random(oskar);
 form6.Label1.Caption:=tab[oskar];
end;
0

Źle to zrobiłeś, ponieważ wartość zmiennej lokalnej "i" nie została zainicjowana i w związku z tym tablica będzie miała nieprzewidywalną, prawdopodobnie bardzo dużą wielkość. Kompilator na pewno wydał ostrzeżenie. Rozwiązanie, które podałem jest poprawne.

1 użytkowników online, w tym zalogowanych: 0, gości: 1