Hi,
wenn ich folgende Procedure aufrufe bekomme ich eine Zugriffsverletzung.
Games ist ein Record.
Delphi-Quellcode:
procedure TMain.RefreshGames;
var i: Integer;
begin
TreeView1.Items.Clear;
for i:= 0 to GameCount-1 do begin
TreeView1.Items.AddChild(nil,Games[i].Name);
end;
end;
Bevor der Quellcode oben ausgeführt wird wird noch das ausgeführt:
(Wobei die nicht direkt nacheinander aufgerufen werden...)
Delphi-Quellcode:
procedure TMain.SetGames;
var i: Integer;
Ini: TIniFile;
begin
Ini := TIniFile.Create(ExtractFilePath(Application.ExeName)+'config.ini');
with Ini do begin
GameCount := Ini.ReadInteger('Count','Count',0);
SetLength(Games,GameCount);
for i:= 0 to GameCount-1 do begin
Games[i].Name := Ini.ReadString('Game'+IntToStr(i),'Name','');
Games[i].Path := Ini.ReadString('Game'+IntToStr(i),'Path','');
Main.TreeView1.Items.AddChild(nil,Games[i].Name);
end;
Free;
end;
for i:= 0 to Main.TreeView1.Items.Count-1 do begin
GetFiles('Mods\' + Main.TreeView1.Items.Item[i+found].Text + '\',Main.TreeView1.Items.Item[i+found]);
// Das GetFiles Zeug ist nicht so wichtig...
end;
end;
Ich verzweifel noch. Zuerst hatte ich gedacht ich hätte irgendwo Setlength(Games,GamesCount) vergessen aber das war nicht der Fall. Ich kann mir das einfach nicht erklären -.-
PS: Es hat, wie ich gerade gemerkt habe, auch nichts damit zu tun, das ich ungünstigerweise eine Eigenschaft "Name" genannt habe..