Autor Beitrag
hibbert
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1007

WinServer2003, Win XP, Linux
D6 Pers, D05
BeitragVerfasst: Mo 23.09.02 15:08 
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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: 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:

_________________
Viele Grüße
Jakob
hibbert Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1007

WinServer2003, Win XP, Linux
D6 Pers, D05
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: Mo 23.09.02 16:57 
versuchs doch mal damit:

ausblenden Quelltext
1:
ShowMessage(IntToStr(ListBox1.Items.IndexOf('Mein String')));					


Wenn Result der Funktion = -1 ist, heißt das, dass der Eintrag nicht gefunden wurde.

_________________
Viele Grüße
Jakob
majolo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 334

Ubuntu 8.04, WinXP Prof.
D1, D6Pers, D7 Prof., D8 Prof., D2005 Pers
BeitragVerfasst: Mo 23.09.02 17:59 
Hi hibbert,

versuchs mal so:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Mo 23.09.02 23:59 
@majolo: Warum benutzt Du einen String? Ein Integer wäre da wohl besser. Also etwa so:
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1007

WinServer2003, Win XP, Linux
D6 Pers, D05
BeitragVerfasst: 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
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 24.09.02 17:47 
Habe ich mal irgendwo gefunden:
ausblenden volle Höhe 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 334

Ubuntu 8.04, WinXP Prof.
D1, D6Pers, D7 Prof., D8 Prof., D2005 Pers
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Mi 25.09.02 09:31 
oder man setzt im Objektinspektor die Eigenschaft autocomplete = true;
Gruß
Ken
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 25.09.02 11:39 
Listbox? Habe ich gar nicht mehr gelesen. Mit Autocomplete habe ich gleich eine Combobox verbunden. :shock: