AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Listbox suche (Live) Buchstabenfolge
Thema durchsuchen
Ansicht
Themen-Optionen

Listbox suche (Live) Buchstabenfolge

Ein Thema von Detrox · begonnen am 1. Nov 2009 · letzter Beitrag vom 1. Nov 2009
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von DeddyH
DeddyH

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

Re: Listbox suche (Live) Buchstabenfolge

  Alt 1. Nov 2009, 16:36
Die nicht gelöschten stehen ja noch drin . Ich denke, Du meinst die bereits gelöschten. Wie ich im zitierten Thread bereits angedeutet hatte, muss man sich die "Original-Items" dann halt in einer internen TStringlist auf Vorrat halten und kann dann ggf. resetten.
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 Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: Listbox suche (Live) Buchstabenfolge

  Alt 1. Nov 2009, 16:37
Du kannst auch die StringList in die ListBox kopieren und bei der Eingabe leerst du die ListBox, läuft die StringList durch und fügst die passenden Einträge hinzu. Dann ist egal, ob du Buchstaben löscht oder hinzufügst.
Umgekehrt geht's natürlich auch: Die ListBox vorm Filtern komplett füllen und dann entsprechend die Einträge löschen.

In welcher Größenordnung befinden wir uns denn, was die Anzahl der Einträge betrifft (wegen der Performance)?
  Mit Zitat antworten Zitat
Detrox

Registriert seit: 26. Okt 2009
59 Beiträge
 
#13

Re: Listbox suche (Live) Buchstabenfolge

  Alt 1. Nov 2009, 16:39
ah ich verstehe, versuch ich mal umzusetzen...


Naja es können schon an die 400 Werden denke ich
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Listbox suche (Live) Buchstabenfolge

  Alt 1. Nov 2009, 16:41
Das ist ja nicht sooo viel. Wenn Du BeginUpdate und EndUpdate einsetzt, sollte das in adäquater Zeit zu machen sein.
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
Detrox

Registriert seit: 26. Okt 2009
59 Beiträge
 
#15

Re: Listbox suche (Live) Buchstabenfolge

  Alt 1. Nov 2009, 16:51
SO klappt ganz gut, nur irgendwie hat es einen kleinen haken, es ist schwierig zu erklären, also wenn ich jetzt etwas lösche dan wird auch geupdatet, nur nicht ganz richtig mal ein Beispiel:

Einträge:

Wolf
Motte
Wohnung
Molle

Ich schreibe:

Mo

.... passiert nix erst wenn ich jetzt noch einmal irgednetwas eingebe dann wird gefiltert.

Delphi-Quellcode:
procedure FilterItems(const sl: TStrings; const substr: string);
var i: integer;
begin
  sl.BeginUpdate;
  Merkliste:=Form1.MailerListbox.Items.Text;
  Form1.Mailerlistbox.Items.Text:=Merkliste;
  try
    for i := Pred(sl.Count) downto 0 do
      if not StrUtils.AnsiContainsText(sl[i],substr) then
        sl.Delete(i);

  finally
    sl.EndUpdate;
  end;
Delphi-Quellcode:
procedure TForm1.SucheditKeyPress(Sender: TObject; var Key: Char);
begin
if Suchedit.text='then
else
Mailerlistbox.Items.Text:=Merkliste;
FilterItems(Mailerlistbox.Items,Suchedit.Text);
end;
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#16

Re: Listbox suche (Live) Buchstabenfolge

  Alt 1. Nov 2009, 16:53
Ohne den Rest des Codes durchgeschaut zu haben: Was ist denn der Sinn dahinter?

Delphi-Quellcode:
Merkliste:=Form1.MailerListbox.Items.Text;
Form1.Mailerlistbox.Items.Text:=Merkliste;
  Mit Zitat antworten Zitat
Detrox

Registriert seit: 26. Okt 2009
59 Beiträge
 
#17

Re: Listbox suche (Live) Buchstabenfolge

  Alt 1. Nov 2009, 16:56
Der sinn dahinter ist, das die aktuellen Listboxeinträge abzüglich der gelöschten den neuen Wert ergeben.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Listbox suche (Live) Buchstabenfolge

  Alt 1. Nov 2009, 16:58
Der steht doch anschließend sowieso in der Listbox.

[edit] Noch einmal zum generellen Vorgehen: Du befüllst Deine Listbox, erstellst Dir eine Stringliste und weist dieser die Items der Listbox zu. Wenn nun gefiltert werden soll, leerst Du die Listbox und fügst die passenden Einträge aus der Stringliste ein. Da Du Dir das Original ja gemerkt hast, kannst Du das beliebig oft wiederholen, ohne dass Dir ursprüngliche Einträge verloren gehen. [/edit]
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
Detrox

Registriert seit: 26. Okt 2009
59 Beiträge
 
#19

Re: Listbox suche (Live) Buchstabenfolge

  Alt 1. Nov 2009, 17:05
Wie bin ich denn drauf

du hast recht mit

Delphi-Quellcode:
if Suchedit.text='then
Mailerlistbox.items.text:=Mailerliste
ist es schon getan wenn ich zu beginn den Listboxinhalt speichere.

Nur ne kleine Macke hats noch lösche ich alles bis nichts mehr im Edit steht, dann muss ich noch 1 mal auf löschen klicken bis die Liste wieder drinn ist.

(vielleicht muss ich auf die Löschtaste separat reagieren)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Listbox suche (Live) Buchstabenfolge

  Alt 1. Nov 2009, 17:08
Dann schreib das doch in ein Event des Edits (OnKeyPress oder OnChange).
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
Antwort Antwort
Seite 2 von 3     12 3      


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 05:56 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