Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Bei Exception nicht stoppen


Hendi48 - Sa 25.08.07 18:46
Titel: Bei Exception nicht stoppen
Hi,
ich habe eine procedure, die versucht auf subitems in einem listview zuzugreifen. Wenn diese SubItems allerdings noch nicht existieren, kommt eine Exception (Listenindex überschreitet das Maximum (3)). Diese hab ich mich try except abgefangen, nur leider stoppt jetz die ganze procedure. Kann ich dem prog irgendwie sagen das es weitermachen soll?


Marc. - Sa 25.08.07 19:13

Warum kontrollierst du nicht erst, ob diese Items überhaupt existieren? Damit würdest du dir die Exception sparen und bräuchtest auch gegebenfalls keine Fehlermeldung auszugeben! ;)
Beispiel: if ItemNumber > (ListView.ItemsCount - 1then ... else ...

Einziges Manko hier wäre meines Erachtens die Performance, die jenachdem was du tust, auf Grund der If-Abfrage leicht sinkt.
grüße


Hendi48 - Sa 25.08.07 19:24

aber ich möchte ja wenn prüfen ob ein SUBITEM existiert. Das Haupt-item existiert auf jeden Fall


Marc. - Sa 25.08.07 19:46

Wo liegt dein Problem?
Ein weiteres Beispiel:

Delphi-Quelltext
1:
2:
3:
 if (listview1.Items.Count = 2then
  if (listview1.Items.Item[2].SubItems.Count = 3then 
    // tue irgendetwas mit Subitem 1-3 von Item2 ...

grüße


Hendi48 - Sa 25.08.07 19:52

Oh, ich wusste gar nich das es bei SubItems auch Count gibt!
Danke, es geht :D