Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Listbox suche (Live) Buchstabenfolge (https://www.delphipraxis.net/142678-listbox-suche-live-buchstabenfolge.html)

Detrox 1. Nov 2009 17:10

Re: Listbox suche (Live) Buchstabenfolge
 
steht alles im KeyPress des Edits.

DeddyH 1. Nov 2009 17:11

Re: Listbox suche (Live) Buchstabenfolge
 
Dann schreib es mal ins OnChange, das hat außerdem den Vorteil, dass Du auf die Zwischenablage reagieren kannst.

Matze 1. Nov 2009 17:11

Re: Listbox suche (Live) Buchstabenfolge
 
Guck mal, du hast folgenden Code:

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;
Schöner wäre es übrigens so:

Delphi-Quellcode:
procedure TForm1.SucheditKeyPress(Sender: TObject; var Key: Char);
begin
  if Suchedit.text <> '' then
    Mailerlistbox.Items.Text := Merkliste;
    FilterItems(Mailerlistbox.Items, Suchedit.Text);
end;
Ich vermute, die beiden Anweisungen nach dem "else" sollen nur ausgeführt werden, wenn der String leer ist, also fehlen hier "begin" und "end (oder auch nicht, wenn es so gewollt ist):

Delphi-Quellcode:
procedure TForm1.SucheditKeyPress(Sender: TObject; var Key: Char);
begin
  if Suchedit.text <> '' then
  begin
    Mailerlistbox.Items.Text := Merkliste;
    FilterItems(Mailerlistbox.Items, Suchedit.Text);
  end;
end;
Gleiches gilt für deine "then else"-Lösung.

Du kannst es natürlich auch so machen:

Delphi-Quellcode:
procedure TForm1.SucheditKeyPress(Sender: TObject; var Key: Char);
begin
  if Suchedit.text = '' then
    // fülle die ganze ListBox
  else
  begin
    Mailerlistbox.Items.Text := Merkliste;
    FilterItems(Mailerlistbox.Items, Suchedit.Text);
  end;
end;
Edit: Und richtig, OnChange ist besser geeignet.

Detrox 1. Nov 2009 17:23

Re: Listbox suche (Live) Buchstabenfolge
 
Ja funzt, aber das alte Problem, wenn ich den letzten Buchstabe lösche, dann macht er das nochmal durch und danach müsste er es nochmal machen macht er aber nicht. logich, denn ich lösche den letzten Buchstaben den erkennt er noch als bedingung und die '' bedingung wird nicht aufgerufen

Detrox 1. Nov 2009 17:32

Re: Listbox suche (Live) Buchstabenfolge
 
So funktionierts

Delphi-Quellcode:
procedure TForm1.SucheditChange(Sender: TObject);
begin
if Suchedit.text <> '' then
  begin
    Mailerlistbox.Items.Text := Mailerliste;
    FilterItems(Mailerlistbox.Items, Suchedit.Text);
  end;
  if Suchedit.text = '' then
  Mailerlistbox.Items.Text := Mailerliste;
end;
Ich danke euch :)

DeddyH 1. Nov 2009 17:33

Re: Listbox suche (Live) Buchstabenfolge
 
"else" sagt Dir aber etwas? :zwinker:

Detrox 1. Nov 2009 17:38

Re: Listbox suche (Live) Buchstabenfolge
 
DeddyH gut das du das ansprichst, da ich da immer ein problem habe und das dann sos chreibe wie du es da siehst.

also wenn zwei Sachen eintreten kann ich kein else mehr schreiben da spinnt mein Delphi rum.


2 Bedingungen GEHT NICHT
Delphi-Quellcode:

if blabla = blabla then
  begin
    blabla := blabla;
    muma:=muma end

else
1 Bedingung GEHT
Delphi-Quellcode:

if blabla = blabla then
  begin
    blabla := blabla end

else

DeddyH 1. Nov 2009 17:41

Re: Listbox suche (Live) Buchstabenfolge
 
Sicher, dass Du keinen anderen Fehler machst? So wie beschrieben sollte das eigentlich immer gehen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:57 Uhr.
Seite 3 von 3     123   

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