AGB  ·  Datenschutz  ·  Impressum  







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

Suchfunktion <> Listbox ?

Ein Thema von Vader · begonnen am 4. Sep 2005 · letzter Beitrag vom 10. Mär 2006
Antwort Antwort
Seite 1 von 3  1 23      
Vader

Registriert seit: 6. Mai 2003
804 Beiträge
 
Delphi 6 Enterprise
 
#1

Suchfunktion <> Listbox ?

  Alt 4. Sep 2005, 15:33
hallo,

wie kann man eigentlich eine suchfunktion für eine listbox coden, ich meine wenn ich nach einen
bestimmten wort suchen will ?


mfg vader
  Mit Zitat antworten Zitat
emteg

Registriert seit: 16. Jun 2005
71 Beiträge
 
Delphi 2009 Architect
 
#2

Re: Suchfunktion <> Listbox ?

  Alt 4. Sep 2005, 15:39
Wenn das wort in dem listbox eintrag vorkommen kann, etwa so:
Delphi-Quellcode:
var i: integer;
    Wort: string;
begin
  for i:=0 to ListBox.Items.Count-1 do
  begin
    if pos(Wort,ListBox.Items[i])>0 then
      //ergebnise auflisten o.ä.
  end;
end;
Falls der Listboxeintrag gleich dem suchwort ist, würdest du das
Delphi-Quellcode:
pos(Wort,ListBox.Items[i])>0
{ersetzen durch}
ListBox.Items[i]=Wort
(ungetestet)
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#3

Re: Suchfunktion <> Listbox ?

  Alt 4. Sep 2005, 15:40
Ähm... per Schleife alle EInträge durchgehen und vergleichen?
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Suchfunktion <> Listbox ?

  Alt 4. Sep 2005, 15:54
Hi vader,

welche Art von Suche stellst du dir vor? Locate (prefix search und markieren des ersten passenden Eintrags) oder Select (auswählen aller passenden Einträge, evtl. regex search).

Soll der Suchbegriff extern vorgegeben werden (eigenes edit control) oder über key codes in der listbox erkannt werden?

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von NicNacMan
NicNacMan

Registriert seit: 28. Mai 2004
Ort: Hamburg
98 Beiträge
 
Delphi 2005 Personal
 
#5

Re: Suchfunktion <> Listbox ?

  Alt 4. Sep 2005, 16:02
hi,

wenn das suchwort 1:1 in der listbox vorkommt würde auch das gehen:
Delphi-Quellcode:
if ListBox1.Items.IndexOf('blub') > -1 then
  // gefunden
The Double-Crunch-Peanuts!
SwapIt:
  Mit Zitat antworten Zitat
Vader

Registriert seit: 6. Mai 2003
804 Beiträge
 
Delphi 6 Enterprise
 
#6

Re: Suchfunktion <> Listbox ?

  Alt 4. Sep 2005, 17:32
hallo marabu,

suche die (prefix search und markieren des ersten passenden Eintrags) methode ?

mfg vader
  Mit Zitat antworten Zitat
Vader

Registriert seit: 6. Mai 2003
804 Beiträge
 
Delphi 6 Enterprise
 
#7

Re: Suchfunktion <> Listbox ?

  Alt 4. Sep 2005, 17:39
hallo,

ich stelle mir eine suchfunktion so vor wie bei vielen progs wo ein neues fenster aufmacht und dort man das
wort eingibt das was man suchen will !

mfg vader
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Suchfunktion <> Listbox ?

  Alt 4. Sep 2005, 18:08
Hi vader,

es gibt viele Möglichkeiten, hier ist eine:

Delphi-Quellcode:
interface

type
  TDemoForm = class(TForm)
    ListBox: TListBox;
    PrefixEdit: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure PrefixEditChange(Sender: TObject);
  end;

implementation

procedure TDemoForm.PrefixEditChange(Sender: TObject);
var
  sl: TStringList;
  index: integer;
begin
  sl := TStringList.Create;
  sl.Sorted := ListBox.Sorted;
  with ListBox do begin
    sl.Assign(Items);
    sl.Find(PrefixEdit.Text, index);
    if (PrefixEdit.Text <> '')
    and (index >= 0)
    and (index < sl.Count)
    and (AnsiUppercase(Copy(sl[index], 1, Length(PrefixEdit.Text))) = AnsiUppercase(PrefixEdit.Text))
      then ItemIndex := index
      else ItemIndex := -1;
  end;
  sl.Free;
end;
Wenn sich der Inhalt von der ListBox nie ändert, dann könntest du die Übernahme der Items in die Stringlist (zum vereinfachten Suchen) bereits im FormCreate() und sl zu einer private Variablen der Form machen.

Statt des Feldes PrefixEdit kannst du auch mit InputQuery() arbeiten.

Kommst du zurecht?

marabu
  Mit Zitat antworten Zitat
Vader

Registriert seit: 6. Mai 2003
804 Beiträge
 
Delphi 6 Enterprise
 
#9

Re: Suchfunktion <> Listbox ?

  Alt 4. Sep 2005, 18:33
hallo marabu,

ganz komme ich nicht zurecht, den code habe ich ohne fehler compilieren können aber wenn ich jetzt
ein wort in das editfeld eingeben und den code ausführe passiert nichts ?

ich kann deinen code nicht ganz interpredieren, sollt bei deinen code das gesuchte wort in der listbox makiert sein wenn es gefunden wurde ???


mfg vader
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#10

Re: Suchfunktion <> Listbox ?

  Alt 4. Sep 2005, 18:40
Richtig - sobald ein passender Präfix eingegeben wurde wird das übereinstimmende Item in der ListBox markiert. Um Umsetzungsfehler auszuschließen und die korrekte Funktionsweise zu sehen könntest du einfach mal ein Leerprojekt anlegen, auf dem sich nur die beiden Controls befinden, wobei du über den Object Inspector ein paar Items in die ListBox eingeben solltest.

Viel Glück,
marabu

Ich gehe jetzt kurz mal den Rasen sprengen

KRAWOOOM

(das ist jetzt ohne Bezug zu der gerade laufenden Revolution)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 11:46 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