AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

AV bei TreeView

Ein Thema von Neutral General · begonnen am 20. Nov 2005 · letzter Beitrag vom 21. Nov 2005
Antwort Antwort
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

AV bei TreeView

  Alt 20. Nov 2005, 16:11
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..
Michael
  Mit Zitat antworten Zitat
Grunzke

Registriert seit: 7. Nov 2005
Ort: Harz
8 Beiträge
 
Delphi 6 Personal
 
#2

Re: AV bei TreeView

  Alt 21. Nov 2005, 15:04
Hat den hier für keine eine Idee?
Mathias
  Mit Zitat antworten Zitat
Benutzerbild von dahead
dahead

Registriert seit: 16. Mai 2005
620 Beiträge
 
#3

Re: AV bei TreeView

  Alt 21. Nov 2005, 15:07
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?
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: AV bei TreeView

  Alt 21. Nov 2005, 15:57
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? For i := Low(Games) To High(Games) Do und gut ist.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

Re: AV bei TreeView

  Alt 21. Nov 2005, 16:25
@ dahead: Wir arbeiten zusammen

Ok ich werde mir die Vorschläge mal ansehen und ausprobieren
Michael
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz