Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Hilfe mit einer ListBox und einem Edit programmieren (https://www.delphipraxis.net/61287-hilfe-mit-einer-listbox-und-einem-edit-programmieren.html)

Nils_13 19. Jan 2006 14:34


Hilfe mit einer ListBox und einem Edit programmieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

ich möchte eine Hilfe wie in Delphi programmieren (wie der Index). Ich habe bereits ein Edit und eine ListBox. Im OnChange habe ich folgenden Code:
Delphi-Quellcode:
procedure Thelpform.SearchEditChange(Sender: TObject);
begin
  Searchbox.ItemIndex := Searchbox.Items.IndexOf(SearchEdit.Text);
end;
1. funktioniert der Code nicht (ich weiß wirklich nicht warum)
2. mit der Select-Methode wird es wahrscheinlich nicht funktionieren, da ich ja im Edit feld, immer noch frei schreiben will.
3. Was könnte ich jetzt tun ? Wie könnte ich so etwas programmieren ? Ich will dazu aber keine Programme und Hilfe Dateien benutzen.

Was wäre noch dafür geiegnet ?

Falls euch meine Beschreibungen nicht reichen, hier ein Screenshot:

Nils_13 19. Jan 2006 17:43

Re: Hilfe mit einer ListBox und einem Edit programmieren
 
Ich regel das ganze jetzt mit der LMD-ListBox.
Aber dann habe ich immer noch ein Problem: Es wird nur etwas markiert, wenn ich das gesamte Wort eingegeben habe, wie kann ich das verhindern ?
Delphi-Quellcode:
procedure TForm1.SearchEditChange(Sender: TObject);
begin
  Searchbox.ItemIndex := Searchbox.Items.IndexOf(SearchEdit.Text);
end;
Sry, für doppelpost :duck:

arbu man 19. Jan 2006 17:52

Re: Hilfe mit einer ListBox und einem Edit programmieren
 
Ich würd die listbox mit einer Schleife durchlaufen und pos verwenden:
(so in etwa)
Delphi-Quellcode:
var i: integer;
begin
  for i:=0 to searchbox.items.count-1 do begin
     if pos(lowercase(searchedit.text),lowercase(searchbox.items[i]))<>0 then begin
       searchbox.ItemIndex:=i;
       break;
     end;
  end;
end;

Khabarakh 19. Jan 2006 18:45

Re: Hilfe mit einer ListBox und einem Edit programmieren
 
Zitat:

Zitat von arbu man
Ich würd die listbox mit einer Schleife durchlaufen und pos verwenden:
(so in etwa)
Delphi-Quellcode:
var i: integer;
begin
  for i:=0 to searchbox.items.count-1 do begin
     if pos(lowercase(searchedit.text),lowercase(searchbox.items[i]))<>0 then begin
       searchbox.ItemIndex:=i;
       break;
     end;
  end;
end;

Funktioniert so deine Delphi-Hilfe :gruebel: ?

@Nils: Benutze das letzte Item, bei dem CompareText größer -1 ist.

Nils_13 19. Jan 2006 18:49

Re: Hilfe mit einer ListBox und einem Edit programmieren
 
Danke Danke, jetzt läuft es :-D

Nachtrag: Aber wenn ich r eintippe springt das Programm dann zum w, das darf dann nicht sein, wie kann ich das beseitigen ?

A-M-X 19. Jan 2006 20:39

Re: Hilfe mit einer ListBox und einem Edit programmieren
 
kanns sein dass es kein R gibt und er zum nächsten Buchstaben vom Alphabet in deiner Listbox springt?

Nils_13 20. Jan 2006 16:51

Re: Hilfe mit einer ListBox und einem Edit programmieren
 
Das ist mir klar, nur wie verhindere ich das ?

Cool der 1111 Beitrag.

Khabarakh 20. Jan 2006 17:10

Re: Hilfe mit einer ListBox und einem Edit programmieren
 
Welchen "Suchalgorithmus" benutzt du denn nun? Meiner sollte eigentlich funktionieren.

Nils_13 20. Jan 2006 19:09

Re: Hilfe mit einer ListBox und einem Edit programmieren
 
Ich benutze deinen.
Delphi-Quellcode:
for i:=0 to searchbox.items.count-1 do begin
     if pos(lowercase(searchedit.text),lowercase(searchbox.items[i]))<>0 then begin
       searchbox.ItemIndex:=i;
       break;
     end;
  end;

Mystic 20. Jan 2006 19:16

Re: Hilfe mit einer ListBox und einem Edit programmieren
 
Versuch mal = 1 statt <> 0


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:00 Uhr.
Seite 1 von 2  1 2      

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