Einzelnen Beitrag anzeigen

ryLIX

Registriert seit: 16. Nov 2008
Ort: Westoverledingen
264 Beiträge
 
RAD-Studio 2009 Pro
 
#1

AV bei angepasster TObjectList

  Alt 16. Feb 2010, 20:41
Hi ihr,
da sich das ganze nun häuft mach ich hier nun nen Sammelthread draus -.-
Nachdem das letzte Problem an meiner angepassten TObjectList behoben war tat sich gleich das nächste auf.
Und nach 2 Stunden debugging und verständnislosen auf den Bildschirm starren hier nun mein Hilferuf

Code der eigenen Funktion in der TObjectList:
Delphi-Quellcode:
procedure TNonFoodList.Suchen(locNonFoodList: TNonFoodList; KeyWord: string);
var
  I: Integer;
begin
  for I := 0 to Self.Count - 1 do
    begin
      if ContainsText(TArtikel(Self.Items[I]).Artikelname, KeyWord) then
        begin
          locNonFoodList.Add(TArtikel(Self.Items[I]));
          Continue
        end
      Else if ContainsText(FloatToStr(TArtikel(Self.Items[I]).Menge), KeyWord) then
        begin
          locNonFoodList.Add(TArtikel(Self.Items[I]));
          Continue
        end
      Else if ContainsText(FloatToStr(TArtikel(Self.Items[I]).Preis), KeyWord) then
        begin
          locNonFoodList.Add(TArtikel(Self.Items[I]));
          Continue
        end
      Else if ContainsText(FloatToStr(TArtikel(Self.Items[I]).Kosten), KeyWord) then
        begin
          locNonFoodList.Add(TArtikel(Self.Items[I]));
        end;
    end;
end;
Hier der Aufruf:
Delphi-Quellcode:
locNonFoodList.Create;
      locNonFoodList.OwnsObjects:=false;
      NonFoodList.Suchen(locNonFoodList, s);
      for X := 0 to locNonFoodList.Count - 1 do
      begin
        NonFoodList.Remove(locNonFoodList.Items[X]);
      end;
      locNonFoodList.Clear;
      locNonFoodList.Free;
Über die Verwendung lässt sich streiten. Aber es erfüllt den Zweck. Ich überleg mir hier eventuell noch den Index des Objects in der Tag eigentschaft oder so zu hinterlegen um auf den Aufruf von Suchen zu verzichten.
Ist aber nicht das Problem, wollt das nur vorweg nehmen bevor einer meckert, mein Problem liegt da wenn ein Artikel gefunden wird und dieser der Liste hinzugefügt werden soll gibts ne AV.
Message:
Zitat:
Im Projekt myProject.exe ist eine Exception der Klasse EAccessViolation mit der Meldung 'Zugriffsverletzung bei Adresse 00426734 in Modul 'myProject.exe'. Schreiben von Adresse 09875D50' aufgetreten.
Was mir nun sagt das die Procedure nicht in die übergebene Liste schreiben kann.
Aber warum verstehe ich nicht
Markus
Hamburflys, Scrubble-Fubble-Puff-Shake, Muffin-Purper-Gurk?
  Mit Zitat antworten Zitat