So ich Hab gestern Abend noch viel rumm probiert und es sieht jetzt so aus:
Delphi-Quellcode:
procedure TForm4.edit_sucheChange(Sender: TObject);
var i : integer;
begin
i := 0;
while i <= FileListBox1.Count -1 do
begin
if length(edit_suche.Text) > 0 then //Wenn das edit feld nicht leer ist...
begin
if (Pos(edit_suche.Text, FileListBox1.Items[i]) = 1) then //...teste ob der such text ab der ersten stelle im dateinamen vorkommt
begin
i := i + 1; //wenn ja, tu nichts und wechsel auf die nächste datei
end
else
begin
FileListBox1.Selected[i] := true; // Wenn nicht Makiere die datei und lösche sie
FileListBox1.DeleteSelected;
i := i + 1; // Wechsel auf die nächste Datei
end;
end
else
begin
i := fileListbox1.count; // While Schleife wird unterbrochen.
end;
end;
end;
Ich hab aber irgendwo einen denkfehler drinn denn eigentlich wenn ich z.B ein W eingebe und es gibt nur eine Datei mit einem W an erster stelle sollte nur noch die Datei mit dem W zusehen sein. Aber es ist ungefähr nur noch die hälfte drinn.... wenn ich dann mehr buchstaben eingebe wird zwar das gesucht ergebnis alleine angezeigt aber ab 4 Buchstaben wird nicht mehr weiter verglichen ein Bsp: Ich hab eine datei die simpsons.txt und eine die simpsons_ver2.txt heißt wenn ich jetzt simpsons eingebe werden zwar nur noch die beiden dateien angezeigt aber auch wenn ich simpsons_ver2.txt eingebe werden trotzdem beide Dateien angezeigt. Ich hab oben nochmal eingetragen wie ich denke das der code funktioniert.
Danke für den Hinweis das die Parameter vertauscht sind^^
edit: Das mit den 4 buchstaben ist jetzt weg. Habe aber immer noch das Problem das er beispielsweise bei einem w auch noch dateien anzeigt die gar kein w in ihrem namen haben...