AGB  ·  Datenschutz  ·  Impressum  







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

Array Access Violation

Ein Thema von DeluxXx · begonnen am 28. Jan 2008 · letzter Beitrag vom 29. Jan 2008
Antwort Antwort
Benutzerbild von DeluxXx
DeluxXx

Registriert seit: 3. Jul 2006
92 Beiträge
 
#1

Array Access Violation

  Alt 28. Jan 2008, 21:00
Hab ein Problem mit dem Zugriff auf die Attribute in einem Array .
Delphi-Quellcode:
private
VideoItemlist : array of TVideoItem ;
//...
implementation
//..
procedure TForm1.btAddToArray(Sender: TObject);
begin
 for i:=0 to ... -1 do
  begin
    //einlesen der werte
    //...
   setLength(VideoItemList,length(VideoItemList)+1) ;
   // in array schreiben
    VideoItemList[I] := TVideoItem.Create(lvVideos,Titel,Description,Rating) ;
  end ;
end;
procedure TForm1.auslesen() ;
begin
  Statusbar.Panels[0].Text := VideoItemList[0].getUrl ;
end;

end;
wenn ich jetzt versuche innerhalb der Methode btAddToArray auf das Item im Array zuzugreifen
klappt das Wunderbar . Jedoch nicht mehr in der Methode auslesen , ich versuche aber nicht auf ein Item zuzugreifen das nicht existiert (per länge des arrays überprüft). Kann es sein das der Speicher jedes mal freigegeben wird sobald ein neues Item hinzugefügt wurde ?
Edit hier noch das meiste von der Klasse TVideoItem
Delphi-Quellcode:
type TVideoItem = class
  private
    ltitel : String ;
    lRating : String ;
    lDescription : String ;
    lUrl : String ;
    lThumbnails : TThumbnaillist;
    lListItemIndex : Integer ;
  public
    property titel : String read ltitel write ltitel ;
    property Description : String read lDescription write lDescription ;
    property Url : String read lUrl write lUrl ;
    property Thumbnails : TThumbnaillist read lThumbnails write lThumbnails;
    property Rating : String read lRating write lRating ;
    function getUrl(): String ;
  published
    Constructor Create(listview : TListview;myTitel,myDescription : String;myRating : String);
  end;

implementation

 Constructor TVideoItem.Create(listview : TListview;myTitel,myDescription : String;myRating : String);
 var
 ListItem : TListItem ;
 begin
    lListItemIndex := listview.Items.Count ;
    Listitem := listview.Items.Add ;
    ListItem.Caption := '' ;
    Listitem.SubItems.Add(myRating) ;
    self.Rating := myRating ;
    ListItem.Subitems.Add(myTitel) ;
    self.titel := Titel ;
    ListItem.Subitems.Add(myDescription) ;
    self.Description := myDescription ;
 end;
If debugging is the process of removing bugs, then programming must be the process of putting them in.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Array Access Violation

  Alt 28. Jan 2008, 21:10
um dir zu antworten sehe ich zu wenig vom Quelltext. Allerdings sehe ich hier was völlig unnötiges:
setLength(VideoItemList,length(VideoItemList)+1) ; Warum machst du sowas in der Schleife? Setzte das Array vor der Schleife gleich auf die richtige Größe um so die fragmentierung des Speichers zu vermeiden und auch das Programm nicht unnötig auszubremsen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von DeluxXx
DeluxXx

Registriert seit: 3. Jul 2006
92 Beiträge
 
#3

Re: Array Access Violation

  Alt 28. Jan 2008, 21:20
Danke, da hast du natürlich Recht. Hab jetzt noch die Klasse TVideoItem gepostet vllt. hilft das ja weiter .
If debugging is the process of removing bugs, then programming must be the process of putting them in.
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Array Access Violation

  Alt 28. Jan 2008, 21:37
versuche dich einmal daran deine klasse ohne listview zu verwalten.
die daten sind die eine seite, die darstellung die andere.
so könntest du deine videoitems zum beispiel auch anders verarbeiten, zum beispiel mit einem treeview, etc...
  Mit Zitat antworten Zitat
Benutzerbild von DeluxXx
DeluxXx

Registriert seit: 3. Jul 2006
92 Beiträge
 
#5

Re: Array Access Violation

  Alt 28. Jan 2008, 21:45
Danke wobei ich das ja gar nicht machen kan,n da ja wenn ich aus einer anderen Methode versuch drauf zuzugreifen ich die Access Violation krieg .
Hm so problem ist gelöst die Array elemente auf die ich versucht hab zuzugreifen haben doch nicht existiert ... hing mit der If abfrage in der schleife zusammen ...
If debugging is the process of removing bugs, then programming must be the process of putting them in.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Array Access Violation

  Alt 29. Jan 2008, 07:16
du meinst sicher die if-Abfrage welche du uns verschwiegen hast
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  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 03:52 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