Jak wyszukać jakiś tekst w LISTBOXIE ???

0

Jak wyszukać jakiś tekst w LISTBOXIE ???


0

W jakim sensie??

0

do edit1.text wpisuję to, co chcę wyszukać w listboxie .... Potem klikam na buttona...

0

Najprościej tak
Listbox1.itemindex:=ListBox1.Items.IndexOf(edit1.text);

0

Albo jeżelimamy dwa komponenty TListBox i TEdit o nazwach ListBox i Pole_Tekstowe, musimy oprogramować zdarzenie OnKeyPress komponentu TEdit.

OTO KOD:

procedure TForm1.Pole_TekstoweKeyPress(Sender: TObject; var Key: Char);
var
I : Integer;
begin
for I := 0 to ListBox.Count-1 do
begin
if ListBox.Items[I] = Pole_tekstowe.Text then
Application.ProcessMessages;
listbox.Selected[I] := True;
end;
end;

0

Hmm. Sposób ten wymaga dokładnego wpisania tego co jest w listboxie. Był też taki kod (niestety nie pamiętam), że można było wpisać część szukanego słowa, i jeżeli listbox był ułożony alfabetycznie zaznaczał 1 słowo z danym ciągiem znaków.
Czy ktoś z was to zna?

0

Widziałem to na forum...
Poszukaj, a znajdziesz...

0

i jest na pewno w faq i kodach źródłowych.

0

[code]procedure TForm1.Edit1Change(Sender: TObject);
var
i:integer;
szukana,linie :string;
begin
ListBox1.ItemIndex := 0;
for i := 0 to ListBox1.Items.Count-1 do
begin
szukana := Edit1.text;
linie := Copy(ListBox1.Items.Strings[i], 1, Length(Edit1.Text));
if linie = szukana then
begin
ListBox1.ItemIndex := i;
break;
end
end;
end; [/code]

0

Albo tak

for I := 0 to ListBox1.items.Count-1 do
  begin
   if pos(UpperCase(edit1.Text),UpperCase(ListBox1.Items[i]))>0 then
    listbox1.Selected[I] := True else
    listbox1.Selected[I] := False;
  end;
end;
0

Jak tak optymalizujemy kod, to może coś takiego

for I := 0 to ListBox1.items.Count-1 do
   listbox1.Selected[I] := pos(UpperCase(edit1.Text),UpperCase(ListBox1.Items[i]))>0;

;-)

0

Jeśli ma być dokładnie to powinno być AnsiUpperCase a nie UpperCase, bo nie zmieni znaków diakrytycznych.

0

W źródełkach SDAPa jest takie coś (tzw. J w WinAMPie) wystarczy ściągnąć i looknąć.

1 użytkowników online, w tym zalogowanych: 0, gości: 1