AGB  ·  Datenschutz  ·  Impressum  







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

Filterfunktion

Offene Frage von "Shirakava"
Ein Thema von Shirakava · begonnen am 30. Apr 2008 · letzter Beitrag vom 30. Apr 2008
Antwort Antwort
Shirakava

Registriert seit: 30. Apr 2008
Ort: Wetzlar
5 Beiträge
 
#1

Filterfunktion

  Alt 30. Apr 2008, 17:54
Guten Tag

ich suche so eine Art filterfunktion für Delphi und zwar möchte ich innerhalb einer listbox nach einem string suchen der in einem edit feld eingegeben wird.

nehmen wir mal an in der listbox stünden folgende werte:

ABCDEFG
FXYZT90
AB369ZD
T9ABG3S

und im Editfeld würde 'AB' eingegeben werden.

wie könnte ich dann die position des AB innerhalb der listbox ermitteln und zwar so dass mit alle 3 integer werte der position angegeben werden?


Vielen dank im vorraus
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#2

Re: Filterfunktion

  Alt 30. Apr 2008, 17:57
Hallo,

Du gehst alle Items durch und ermittelst mit der Pos()-Funktion das Vorkommen des Teilstrings im Item.
Wenn Pos > 0 dann merkst Du Dir diese Position.

Edit: und nächstes Mal bitte in der richtigen Kategorie posten
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Filterfunktion

  Alt 30. Apr 2008, 18:01
schau dir mal den thread an:
http://www.delphipraxis.net/internal...=878257#878257

da wird einfach die bereits vorhandene Funktion von Windows genutzt.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Shirakava

Registriert seit: 30. Apr 2008
Ort: Wetzlar
5 Beiträge
 
#4

Re: Filterfunktion

  Alt 30. Apr 2008, 20:00
danke

ich werds grade mal ausprobieren...
das einzige problem ist das wir diese funktionen quasi noch nicht im unterricht behandelt hatten und ich quasi eine andere alternative lösung erhofft hatte mit dem kenntnisstand den ich zur verfügung habe...
ich hatte folgendes bereits probiert

Delphi-Quellcode:
procedure TVok_Form.E_FilterChange(Sender: TObject);
var
x,y,z :integer;
begin
x:=0;
while(x < lb_vokabelliste.Items.Count) do
        begin
        Y:=1;
        while(Y < length(lb_vokabelliste.Items.Strings[X])) do
               begin
               Z:=0;
               while(Z<length(E_filter.text))do
                       begin
                       if (e_filter.Text[Z] = lb_vokabelliste.Items.Strings[X][Y+Z-1])then
                                begin
                                label1.Color := clred;
                                end
                                else
                                        begin
                                        lB_vokabelliste.items.Delete(X);
                                        end;
                       Z := Z+1
                        end;
                Y:=Y+1;
                end;
        X:= X+1;
        end;
das klappt auch schon soweit, bis auf dass ich die fehlermeldung erhalte, dass der index nicht im gültigen befehl läge.
ohne den befehl Lb_vokabelliste.items.delete(x) läuft es allerdings einwandfrei... woran kann das liegen?
  Mit Zitat antworten Zitat
Benutzerbild von Mackhack
Mackhack

Registriert seit: 29. Nov 2003
Ort: San Diego, CA/USA
1.446 Beiträge
 
Delphi 2006 Architect
 
#5

Re: Filterfunktion

  Alt 30. Apr 2008, 20:22
Geht das net einfacher und zwar so?

Delphi-Quellcode:
begin
  if ( ListBox1.Items.IndexOf(Edit1.Text) <> -1 ) then
  begin
    ShowMessage('Gefunden');
  end;
end;
Somit weist du ob deer eingegebe Eintrag schon vorhanden ist!
Um etwas Neues zu schaffen muss man seine Ohren vor den Nein-sagern verschliessen um seinen Geist öffnen zu können.
(George Lukas)
  Mit Zitat antworten Zitat
Shirakava

Registriert seit: 30. Apr 2008
Ort: Wetzlar
5 Beiträge
 
#6

Re: Filterfunktion

  Alt 30. Apr 2008, 20:36
Das ist zwar eine möglichkeit.

aber der benutzer gibt ja nie den kompletten string ein der in der listbox steht sonder immer nur einen teil und die beiträge die nicht übereinstimmen sollen dann gelöscht werden.
bei der letzen variante werden die beiträge die ungenügend sind erst gelöscht wenn der komplette inhalt der listbox angegeben wird.
  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 02:12 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