Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Text in einer Listbox Suchen
hibbert - Mo 23.09.02 15:08
Titel: Text in einer Listbox Suchen
hallo,
ich möchte gerne einen bestimmten text in einer Listbox suchen und makieren lassen (alles während der user die eingaben im edit feld vornimmt ( ich dachte an onkeydown)) . wenn jemand weiß was ich meine, und auch noch helfen kann, der soll sich bitte schnell melden !!
DANKE
mfg hibbert
DeCodeGuru - Mo 23.09.02 15:17
guck mal in der Delphi-Hilfe unter TStringlist (TListBox.Items TStringlist) nach IndexOf, ItemIndex oder mal unter TListBox nach Selected. Oder schau mal im Forum, kann auch nie schaden :mrgreen:
hibbert - Mo 23.09.02 16:47
danke, für deine antwort, aber irgenwie bekomme ich dass nicht so hin !!
kannste mir vielleicht mal ne beispiel geben ?
DANKE
mfg hibbert
DeCodeGuru - Mo 23.09.02 16:57
versuchs doch mal damit:
Quelltext
1:
| ShowMessage(IntToStr(ListBox1.Items.IndexOf('Mein String'))); |
Wenn Result der Funktion = -1 ist, heißt das, dass der Eintrag nicht gefunden wurde.
majolo - Mo 23.09.02 17:59
Hi hibbert,
versuchs mal so:
Quelltext
1: 2: 3: 4: 5: 6:
| var s:string; begin S:=IntToStr(Listbox1.Items.IndexOf(Edit1.Text)); ListBox1.ItemIndex:=StrToInt(s); If ListBox1.ItemIndex = -1 then Showmessage( Edit1.Text +' konnte nicht gefunden werden'); |
Meintest du so etwas?Ich hoffe es funzt.
Gruss
majolo
Tino - Mo 23.09.02 23:59
@majolo: Warum benutzt Du einen String? Ein Integer wäre da wohl besser. Also etwa so:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| var Idx: Integer; begin Idx := Listbox1.Items.IndexOf (Edit1.Text); ListBox1.ItemIndex := Idx; If Idx = -1 then Showmessage (Edit1.Text +' konnte nicht gefunden werden'); end; |
Gruß
TINO
hibbert - Di 24.09.02 17:05
Fett danke !!!
Genau dass was ich gesucht habe. doch...
wenn ich z.b. die wörter Hallo Hall Halle Holle Hölle Kind Mutter Vert ... in der liste zu stehen habe und ich den buchstaben h eingebe, soll er automatisch zum ersten wort mit dem h springen ! ( kurz autovervollständigung)
ist das ebenfalls möglich, erspart einem mächtig arbeit !
trozdem DANKE !
mfg hibbert
Delete - Di 24.09.02 17:47
Habe ich mal irgendwo gefunden:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32:
| var LastKey:Word;
...
procedure TForm1.ComboBox1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin LastKey:=Key; end;
procedure TForm1.ComboBox1Change(Sender: TObject); Var Srch : String; ix : Integer; Begin Srch := combobox1.Text; if LastKey = $08 then Begin LastKey := 0; Exit; end; LastKey := 0; ix := combobox1.Perform(CB_FINDSTRING,-1,LongInt(PChar(Srch))); if ix > CB_ERR then Begin combobox1.ItemIndex := ix; combobox1.SelStart := Length(Srch); combobox1.SelLength := (Length(combobox1.Text) - Length(Srch)); end; end; |
majolo - Di 24.09.02 20:44
@Tino: Hast recht.Habe den Source aus dem stehgreif geschrieben.Viel mir auch auf, war aber dann schon abgeschickt.Aber funzen tut der auch.
Gruss
majolo
CenBells - Mi 25.09.02 09:31
oder man setzt im Objektinspektor die Eigenschaft autocomplete = true;
Gruß
Ken
Delete - Mi 25.09.02 10:42
Eine Listbox mit AutoComplete? :?
Was du meinst ist wohl die AutoComplete-Combobox. Aber die gibt es erst ab Delphi 6. Aber -wie Luckies Code zeigt!- so schwer ist es ja nicht.
Delete - Mi 25.09.02 11:39
Listbox? Habe ich gar nicht mehr gelesen. Mit Autocomplete habe ich gleich eine Combobox verbunden. :shock:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!