AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Listbox mit einer Suchfunktion durchsuchen?
Thema durchsuchen
Ansicht
Themen-Optionen

Listbox mit einer Suchfunktion durchsuchen?

Ein Thema von playa2k · begonnen am 23. Dez 2008 · letzter Beitrag vom 23. Dez 2008
Antwort Antwort
Seite 1 von 2  1 2      
playa2k

Registriert seit: 23. Dez 2008
3 Beiträge
 
#1

Listbox mit einer Suchfunktion durchsuchen?

  Alt 23. Dez 2008, 13:48
Hallo Delphi-PRAXIS Community,

bin ein sehr begeisterter Programmierer, jedoch noch im Anfangs-Stadium und bräuchte eure Hilfe.
Besuche die Stufe 12 eines Gymnasiums und wir haben erst seit einigen Monaten begonnen, so richtig mit Delphi zu arbeiten.
Deshalb habe ich auch nur bedingte Grundkenntnisse und überfordert mich bitte nicht .

Ich habe begonnen, ein Visitenkarten-durchsuch-Programm zu schreiben (2-3 Minuten ) und wollte gerne eine Suchfunktion einbauen,
um die Suche für meinen Vater etwas zu erleichtern.

Sobald etwas in das Edit-Feld eingegeben wird, soll Listbox durchsucht werden und die in Frage kommenden Namen übrig bleiben.

Um ein kleines Bild vom Programm zu machen, habe ich das Programm in den Anhang getan.

Ich hoffe Ihr könnt mir helfen.

Frohe Weihnachten und einen guten Rutsch !

play
Angehängte Dateien
Dateityp: zip visitenkarten_274.zip (211,7 KB, 18x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Der.Kaktus
Der.Kaktus

Registriert seit: 22. Jan 2008
Ort: Erfurt
958 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Listbox mit einer Suchfunktion durchsuchen?

  Alt 23. Dez 2008, 14:13
Hallo und erstmal herzlich willkommen in der ,

Da Du, wie Du schreibst, fuer Deinen Vater Visitenkarten
verwalten moechtest, schau doch mal in der Suchfunktion der DP hier nach so etwas..Stichwort "Adressverwaltung"..da findest Du auch sicher paar Codeschnippsel die Dir helfen

Dir auch schoenes Fest
Gruss Kaki

Repeat Until true=false;
  Mit Zitat antworten Zitat
Noedel

Registriert seit: 7. Aug 2008
204 Beiträge
 
Delphi 7 Professional
 
#3

Re: Listbox mit einer Suchfunktion durchsuchen?

  Alt 23. Dez 2008, 14:20
ich hab das mal in nem programm von mir für ein Record gemacht.
QC siehe hier V hoffe es hilft ein wenig

Delphi-Quellcode:
procedure TForm1.EsucheChange(Sender: TObject);
var
  suche:string;
  buchstabe,wort,buchstabeimwort,biw,b:integer;
  weitersuchen:boolean;
begin
  esuche.Color:=clwhite;
  suche:=esuche.Text;
  gefundene:='';
  lgefundene.Caption:='';
  if length(suche) >=2 then
    begin
      weitersuchen:=false;
      wort:=1;
      REPEAT
        buchstabe:=1;
        buchstabeimwort:=1;
        weitersuchen:=false;
          REPEAT
           IF upcase(suche[buchstabe])=upcase(rec[wort].programm[buchstabeimwort]) THEN
             begin
               biw:=buchstabeimwort;
               b:=buchstabe;
               REPEAT
                 weitersuchen:=false;
                 inc(b);
                 inc(biw);
                 IF upcase(suche[b])=upcase(rec[wort].programm[biw]) THEN
                   weitersuchen:=true else weitersuchen:=false;
               UNTIL (weitersuchen=false)or(length(suche)=b);
               IF weitersuchen=true THEN
                 begin
                   lbausgabe.Selected[wort-1]:=true;
                   if gefundene='then showmessage('Kein Fund');
                   gefundene:=gefundene+rec[wort].programm+#13;
                   lgefundene.Caption:=gefundene;
                 end;
             end;
           inc(buchstabeimwort);
          UNTIL (weitersuchen=true)or(buchstabe=length(suche))or(buchstabeimwort=length(rec[wort].programm));
        inc(wort);
      UNTIL Wort-1 = anzahl;
  end;
  if (gefundene='')and(length(suche)>1) then
    begin
      esuche.Color:=clred;
      beep;
    end;
end;
-"Was studierst du eigentlich? Nerdologie?"
-"Informatik..."
-"Wusst ich´s doch!"
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Listbox mit einer Suchfunktion durchsuchen?

  Alt 23. Dez 2008, 14:20
Der zu suchende String soll aber in der Listbox stehen, oder? Dann wäre es IMHO das Einfachste, die Listbox.Items in einer Schleife (rückwärts!) zu durchlaufen und die Items zu löschen, die den Suchstring nicht enthalten.
Delphi-Quellcode:
for i := Pred(ListBox.Items.Count) downto 0 do
  //möglicherweise habe ich jetzt die Parameter vertauscht, einfach mal in der Hilfe nachsehen
  if not StrUtils.AnsiContainsText(Suchstring,ListBox.Items[i]) then
    ListBox.Items.Delete(i);
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Listbox mit einer Suchfunktion durchsuchen?

  Alt 23. Dez 2008, 14:28
Zitat von DeddyH:
Der zu suchende String soll aber in der Listbox stehen, oder? Dann wäre es IMHO das Einfachste, die Listbox.Items in einer Schleife (rückwärts!) zu durchlaufen und die Items zu löschen, die den Suchstring nicht enthalten.
Delphi-Quellcode:
for i := Pred(ListBox.Items.Count) downto 0 do
  //möglicherweise habe ich jetzt die Parameter vertauscht, einfach mal in der Hilfe nachsehen
  if not StrUtils.AnsiContainsText(Suchstring,ListBox.Items[i]) then
    ListBox.Items.Delete(i);
Ist aber blöd, wenn ich mich z.B. vertippt habe und ein bereits eingegebenes Zeichen
wieder lösche - dann kann es vorkommen, dass der String bei den vorherigen Schritten
aus der Liste geflogen ist.

Was vielleicht noch interessant ist - autovervollständigen
Musst Du dir nur noch entsprechend umbauen von StringList nach ListBox.items.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Der.Kaktus
Der.Kaktus

Registriert seit: 22. Jan 2008
Ort: Erfurt
958 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Listbox mit einer Suchfunktion durchsuchen?

  Alt 23. Dez 2008, 14:55
Nichts gegen Eure Loesungen..aber...sollten wir net "helfen zu lernen"..mir schien es bei "ihm" sehr nuetzlich..da er Initiative zeigte!!!
Gruss Kaki

Repeat Until true=false;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Listbox mit einer Suchfunktion durchsuchen?

  Alt 23. Dez 2008, 15:32
@Klaus: das ist ja wohl eher ein konzeptionelles Problem. Der TE müsste sowieso eine Stringliste aller Items im Hintergrund halten oder beim Rücksetzen der Filterbedingungen die Items neu einlesen, so what?

@Kaki: Das sind doch nur mögliche Lösungsansätze, der TE muss das immer noch verfeinern IMO
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Der.Kaktus
Der.Kaktus

Registriert seit: 22. Jan 2008
Ort: Erfurt
958 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Listbox mit einer Suchfunktion durchsuchen?

  Alt 23. Dez 2008, 15:55
[Edit] ....geloescht.....[/edit]
[OT] Schoenes Weihnachtsfest und guten Rutsch wuensch..Dir und Deinem Schatz [/OT]
Gruss Kaki

Repeat Until true=false;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Listbox mit einer Suchfunktion durchsuchen?

  Alt 23. Dez 2008, 16:06
[OT] Dir und allen anderen Usern wünschen wir dasselbe [/OT]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
playa2k

Registriert seit: 23. Dez 2008
3 Beiträge
 
#10

Re: Listbox mit einer Suchfunktion durchsuchen?

  Alt 23. Dez 2008, 16:42
Danke erst einmal für die Lösungsvorschläge.

Bin der Idee von DeddyH gefolgt, weil mir diese als einfachste erschien.
Jetzt weiß ich auch so ungefähr, was "AnsiContainsText" macht.
"Returns true if a string contains a substring, case insensitive"
True wird "gegeben", sobald String Zeichen vom Substring enthält.
Soweit ok.

if not StrUtils.AnsiContainsText(Suchstring,ListBox.Items[i])
^ ^
Also : 2.dem gesucht|1.In hier wird nach -
|-------------------------------|

Ich habe soweit folgendes stehen und bekomme folgende Fehlermeldungen, mit denen ich nichts anfangen kann, finde die Fehler nicht *schäm*

procedure TForm2.Button1Click(Sender: TObject);
begin
for i := Pred(ListBox1.Items.Count) downto 0 do
if not StrUtils.AnsiContainsText(Wort,ListBox1.Items[i]) then
ListBox.Items.Delete(i);
end;


[Error] Unit2.pas(42): Incompatible types: 'String' and 'Integer'
[Error] Unit2.pas(44): ')' expected but identifier 'Items' found
[Error] Unit2.pas(52): Statement expected but end of file found

Irgendwas stimmt mit ListBox1.Items[i] nicht, das weiß ich schonmal.
Ich habe versucht, die Fehler zu beseitigen, jedoch ohne Erfolg.
Ich möchte mich auch für das untere Niveau dieses Threads entschuldigen,es wäre wichtig für mich dieses Programm nach meinen Vorstellungen zu erstellen.

play
frohes Fest
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 03:14 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