hallo
in meiner verschachtelten (such)schlaufe wird eine listview durchlaufen und innerhalb dieser wird eine stringlist durchlaufen. soweit so gut. wenn ich for i:=0 to listview1.items.count-2 mache dann funzt es ausser, dass er dann in der letzten zeile nicht sucht. das heisst er ignoriert die letzte zeile der listview. (aber keine fehlermeldung).
wenn ich nun die zeile logischerweise umschreiben nach: for i:=0 to listview1.items.count-1 dann bearbeitet er zwar die letzte zeile auch aber DANACH kommt ein hässlicher
Access Violation fehler.
(das heisst er will irgendwie noch über das listenende hinaus suchen).
kann sich das jemand erklären? ist bestimmt ein kleiner mistfehler.. aber ich find ihn nicht.
siehe code:
Delphi-Quellcode:
screen.Cursor:=crhourglass;
listview1.ItemIndex:=0;
liste:=TStringList.Create;
for i:=0 to listview1.Items.Count-1 do
begin
liste.LoadFromFile(listview1.Items.Item[listview1.itemindex].SubItems[5]+'.dec');
for j:=0 to liste.Count-1 do
begin
if pos(uppercase(edsuch.Text),uppercase(liste[j])) >0 then
begin
if Application.Messagebox(pchar('Eintrag gefunden! Weitersuchen? = ja / Öffnen = nein'),pchar('Suche erfolgreich'),MB_YESNO or MB_ICONWARNING) = mryes then
begin
// Weitersuchen
end else
begin
// Gefundenes Statement öffnen
btnoeffnen.Click;
screen.Cursor:=crdefault;
exit;
end;
end else
begin
//showmessage('nichts gefunden');
end;
end;
listview1.ItemIndex:=listview1.ItemIndex+1;
end;
liste.Free;
showmessage('Suche abgeschlossen!');
screen.Cursor:=crdefault;