AGB  ·  Datenschutz  ·  Impressum  







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

Suche in TListView - Zugriffsverletzung?

Ein Thema von robinWie · begonnen am 20. Jun 2006 · letzter Beitrag vom 21. Jun 2006
Antwort Antwort
Benutzerbild von robinWie
robinWie

Registriert seit: 26. Okt 2005
Ort: Lippcity
404 Beiträge
 
Delphi 2005 Personal
 
#1

Suche in TListView - Zugriffsverletzung?

  Alt 20. Jun 2006, 19:19
Hallo,
ich verusuche in meinen Programm eine Suchfunktion für eine TListView einzubauen, die Dateien anzeigt. Das ganze soll so wie bei der Winamp Media-Library sein. Also das nur die Einträge angezeigt werden, die das gesuchte Wort beinhalten.
Aber ich erhalte immer eine Zugriffsverletzung

Hier der Code:
Delphi-Quellcode:
procedure TMainForm.Search_edtChange(Sender: TObject);
var
  i: integer;
  FOUND: Boolean;
begin
  if Seach_edt.Text <> 'then
    begin
      for i := 0 to FileList.Items.Count -1 do
        begin
          FOUND := AnsiCompareText(FileList.Items[i].Caption, Search_edt.Text) = 0;
          if not FOUND then
            FileList.Items[i].Delete;
        end;
    end;
end;
ich habe mir einen klienen Teil des Codes hier "geklaut"

Weiss jemand rat?

Robin
Robin W.
Ein Computer kann (fast) alles.... Man muss es ihm nur beibringen
  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: Suche in TListView - Zugriffsverletzung?

  Alt 20. Jun 2006, 19:21
lass deine schleife andersherum laufen und es sollte funktionieren. Dadurch das du Einträge raus löschst greifst du am ende der Schleife auf Items zu die gar nicht mehr existieren.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von robinWie
robinWie

Registriert seit: 26. Okt 2005
Ort: Lippcity
404 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Suche in TListView - Zugriffsverletzung?

  Alt 20. Jun 2006, 19:26
Jetzt kommt kein Fehler mehr - aber passieren tut auch nix
Robin W.
Ein Computer kann (fast) alles.... Man muss es ihm nur beibringen
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Suche in TListView - Zugriffsverletzung?

  Alt 20. Jun 2006, 19:30
Hallo Robin,

solltest du nicht besser Delphi-Referenz durchsuchenAnsiContainsText benutzen?

Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von robinWie
robinWie

Registriert seit: 26. Okt 2005
Ort: Lippcity
404 Beiträge
 
Delphi 2005 Personal
 
#5

Re: Suche in TListView - Zugriffsverletzung?

  Alt 21. Jun 2006, 19:06
Irgendwie bin ich zu inkompetent

Habs mal mit einer Repeat-Schleife probiert. Das Ergebniss: Zugriffsverletzung
Delphi-Quellcode:
i := 0;
repeat
  if UpperCase(FileList.Items[i].Caption) <> UpperCase(Search_Word) then
    FileList.Items.Delete(i);
  i := i+1;
until i = FileList.Items.Count -1;
Robin W.
Ein Computer kann (fast) alles.... Man muss es ihm nur beibringen
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Suche in TListView - Zugriffsverletzung?

  Alt 21. Jun 2006, 19:15
SirThornberry hat dir doch schon erklärt, warum die Schleife rückwärts laufen muß.

Mit der Funktion AnsiCompareText vergleichst du immer vollständige Einträge. Deshalb mein Verweis auf die Funktion AnsiContainsText.

Gruß Hawkeye
  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 07:22 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