![]() |
AV bei TreeView
Hi,
wenn ich folgende Procedure aufrufe bekomme ich eine Zugriffsverletzung. Games ist ein Record.
Delphi-Quellcode:
Bevor der Quellcode oben ausgeführt wird wird noch das ausgeführt:
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; (Wobei die nicht direkt nacheinander aufgerufen werden...)
Delphi-Quellcode:
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 -.-
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; PS: Es hat, wie ich gerade gemerkt habe, auch nichts damit zu tun, das ich ungünstigerweise eine Eigenschaft "Name" genannt habe.. |
Re: AV bei TreeView
Hat den hier für keine eine Idee?
|
Re: AV bei TreeView
also erstmal würde ich für beginupdate/endupdate plädieren.
dann solltest du dir eine ShowMessage einbauen, die dir mal die anzahl der elemente anzeigt. falls das nicht zur problemlösung beiträgt, würde ich die showmessage noch in den for-loop einbauen und die infos anzeigen. du könntest auch einen breakpoint auf das addchild setzen um zu sehen an welcher stelle/position es kracht. edit: arbeitet ihr zusammen oder push'st du für ihn? |
Re: AV bei TreeView
Und ich würde bei der RefreshGames Methode nicht GamesCount nutzen sondern direkt einfach die Array Länge wie sie tatsächlich ist. Das Array weiss doch wie lang es ist, warum also noch extra eine Variable dafür mit rumschleppen?
Delphi-Quellcode:
und gut ist.
For i := Low(Games) To High(Games) Do
|
Re: AV bei TreeView
@ dahead: Wir arbeiten zusammen ;)
Ok ich werde mir die Vorschläge mal ansehen und ausprobieren :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz