![]() |
TStringList-Probleme Objekte vorhanden?
Hallo Leute
Ich habe hier eine 'blöde' StringListe in der ich Objekte zwischenspeichere. Diese Übergebe ich dann an eine andere mittels Assign:
Delphi-Quellcode:
Frage: Wie kann ich überprüfen ob die Objekte vorhanden sind?
...
procedure TCustomFilterListView.SetFilterList(Value : TStringList); var I : Integer; begin FFilterList.Assign(Value); for I := 0 to FFilterList.Count - 1 do with Groups.Add do Header := TSelectedFilter(FFilterList.Objects[I]).Kategorie; // Läuft Fehlerfrei durch end; ... procedure TCustomFilterListView.FilterScan(Value : TFileScanRec); var I : Integer; E : String; N : String; F : String; S : Cardinal; begin E := ExtractFileExt(StrPas(Value.lpFileName)); I := FFilterList.IndexOf(E); if ((I <> -1) and FFilterList.OwnsObjects) then begin N := FFilterList.Strings[I]; F := TSelectedFilter(FFilterList.Objects[I]).FilterName; // <-- Hier der Fehler, keine Objekte vorhanden S := (Value.lpFindFileData.nFileSizeHigh * (Int64(MAXDWORD) + 1)) + Value.lpFindFileData.nFileSizeLow; FFoundFiles.AddObject(N, TFoundFile.Create(I, Value.lpFileName, S, F)); end; if Assigned(FOnFilterScan) then FOnFilterScan(Self, StrPas(Value.lpFileName)); end; ... |
Re: TStringList-Probleme Objekte vorhanden?
Einfach mittels Assigned() pruefen:
Delphi-Quellcode:
if Assigned(FFilterList.Objects[I]) then
|
Re: TStringList-Probleme Objekte vorhanden?
Assign fürt ja eine Prüfung auf <> nil durch. Zur Sicherheit soltlest du deshalb beim Freigeben der Objekte auch den Pointer in der Liste auf nil setzen, fals du nicht das ganze Element entfernst.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:13 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