Mam sobie taki rekordzik:
type gracz_rekord = record
login: string[20];
pass: string[20];
punkty: integer
end;
var
gracz: array of gracz_rekord;
zapelniam sobie teraz te tablice pewnymi danymi (poszerzam ja pobierajac dane z Edit'a):
procedure TMainForm1.ButtonStworzDaneClick(Sender: TObject);
begin
setLength(gracz, strtoint(EditWielkosc.Text));
for i:=0 to strtoint(EditWielkosc.Text) do
begin
gracz[i].login:='qwert'; //random(100);
gracz[i].pass:='asdf'; //random(20);
gracz[i].punkty:=i;
end;
LabelStatus.Caption:='Wygenerowano dane...';
end;
Pierwszy problem - jak w tym momencie zamkne program to wywala krytyczny blad "Project rekordy.exe raised exception class EInvalidPointer with message 'Invalid pointer operation'. (...)"
O co chodzi? I czemu tak sie dzieje?
EDITED: Juz doszedlem.... Otoz ustawiajac dlugosc tablicy np. 200 tworzymy tablice majaca pola od 0 do 199... Odczytywalem / zapisywalem dane spoza tablicy co moze sie zle czasem skonczyc ^^ Czeba o tym pamietac i zmniejszac wartosci przy odczytywaniu / zapisywaniu o 1.
Pozdrawiam.