Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi ListBoxeinträge nach einem bestimmten Wort durchsuchen (https://www.delphipraxis.net/40756-listboxeintraege-nach-einem-bestimmten-wort-durchsuchen.html)

Hansa 21. Feb 2005 20:48

Re: ListBoxeinträge nach einem bestimmten Wort durchsuchen
 
Es könnte sich um 61 Sek. handeln. 8)

Und hier steht es noch viel früher :

http://www.delphipraxis.net/internal...692&highlight=

:mrgreen:

quakergod 21. Feb 2005 21:32

Re: ListBoxeinträge nach einem bestimmten Wort durchsuchen
 
Delphi-Quellcode:
function DeleteStrings(Items: TStrings; Pattern: String; CaseSensitive: Boolean=True): Integer;
var
  DeleteEntry: Boolean;
  i : integer;
begin
  Result := 0;
  for i := Items.Count-1 downto 0 do
  begin
    if CaseSensitive then
      DeleteEntry := (Pos(Pattern, Items[i]) = 0)
    else
      DeleteEntry := (Pos(LowerCase(Pattern), LowerCase(Items[i])) = 0 );
    if DeleteEntry then
    begin
      Items.Delete(i);
      Inc(Result);
  end;
end;
end;
wenn ich die funktion so aufrufe:
Delphi-Quellcode:
DeleteStrings(lb_streams.Items, edit_filter.Text, False);
funktionierts ganz gut, nur wenn das wort in der listbox großgeschrieben ist löscht er es auch raus! :?

Hansa 21. Feb 2005 22:24

Re: ListBoxeinträge nach einem bestimmten Wort durchsuchen
 
Wo ist denn DeleteEntry initialisiert worden ? Davon sehe ich nichts. :shock: Rufst du die Prozedur eventuell mehrmals auf ? "Result" ist als Funktionswert sehr bequem. Aber ich besetze lieber meine eigenen Werte. 8)

Muetze1 22. Feb 2005 03:12

Re: ListBoxeinträge nach einem bestimmten Wort durchsuchen
 
Moin!

@quakergod: Die Procedure verhält sich vollkommen richtig, schliesslich sagst du ihr beim Aufruf das sie die Gross- und Kleinschreibung nicht beachten soll!

Rufe die Procedure mit
Delphi-Quellcode:
DeleteStrings(lb_streams.Items, edit_filter.Text, True);
auf und es klappt.

MfG
Muetze1

alcaeus 22. Feb 2005 06:31

Re: ListBoxeinträge nach einem bestimmten Wort durchsuchen
 
Zitat:

Zitat von Hansa
Wo ist denn DeleteEntry initialisiert worden ? Davon sehe ich nichts.

Du nicht? Ich schon:
Delphi-Quellcode:
if CaseSensitive then
  DeleteEntry := (Pos(Pattern, Items[i]) = 0)
else
  DeleteEntry := (Pos(LowerCase(Pattern), LowerCase(Items[i])) = 0 );
DeleteEntry wird in JEDEM Fall intialisiert :zwinker:

@quakergod: nachdem ich für CaseSensitive einen DefaultWert (=True) zugewiesen habe, brauchst du die Funktion auch nur mit 2 Parametern weglassen. Wenn der 3. Parameter True sein soll, lass ihn weg. Dann wird auch auf die Groß-/Kleinschreibung geachtet.

Greetz
alcaeus


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:00 Uhr.
Seite 2 von 2     12   

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