szukanie

0

Teraz coś trudniejszego: jek zrobić, że gdy pisze się wyraz w edicie to listbox przesuwa się do tego wyrazu?

0

Wydaje mi się że coś takiego było i jest chyba a jak nie to niewiem :-[ :-[

0

Jeżeli myślimy o tym samym, to to będzie proste. Zakładając, że mamy 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

Jeżeli myślimy o tym samym, to to będzie proste. Zakładając, że mamy 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;

Nie bardzo to działa zaznacza po kolei wszystkie linie tyle razy ile w listboxie ich jest a na koncu ustawia sie na osatniej pozycji

0

Jeżeli wpiszemy do edita jakąś nazwę i naciśniemy space, to jeżeli
dana nazwa jest w ListBox, to zostanie ona zaznaczona.

0

Jeżeli wpiszemy do edita jakąś nazwę i naciśniemy space, to jeżeli
dana nazwa jest w ListBox, to zostanie ona zaznaczona.

Nie nie działa wpisałem i nie działa nawet wielkośc liter uwazgledniłem

0

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

0

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

A żeby znalazł tylko fragmęt textu np masz w listboxie abcdefghijklmnoprstu a podasz mu np abc albo ze środka ghi i żeby wtedy zaznaczał a jak jest kilka to pierwsze w kolejności

0

if ListBox.Items[I] = Pole_tekstowe.Text then [b]begin[/b]

if Pos(Pole_tekstowe.Text, ListBox.Items[I]) > 0 then [b]begin[/b]

0

To zapytam jeszcze jak zrobić aby nie sprawiało różnicy małe i wielkie litery.
Jak w listboxie zaczyna sie od wielkiej to nie szuka jak sie wpisze małą i odwrotnie tak wszysko małymi albo dużymi to też nie szuka

0

if Pos(Pole_tekstowe.Text, ListBox.Items[I]) > 0 then [b]begin[/b]

if Pos(AnsiUpperCase(Pole_tekstowe.Text), AnsiUpperCase(ListBox.Items[I])) > 0 then begin

0

if ListBox.Items[I] = Pole_tekstowe.Text then [b]begin[/b]

if Pos(Pole_tekstowe.Text, ListBox.Items[I]) > 0 then [b]begin[/b]

a czy przypadkiem w takim wypadku jesli gostek bedzie mial w listbox abcd a wpisze sobie do edita 'bc' to mu chyba tez ta linie zaznaczy, a nie o to przeciez chodzi.

sorry jesli sie myle.

0

Dzięki wszystkim za odpowiedź

0

A ja przepraszam za drobną pomyłkę :-)
Ale przecież brakowało tylko:
begin
end;

;-)

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