[Delphi] Wyszukiwarka

0

Witam !

Czy moze mi ktos powiedziec jak mozna zrobic cos takiego.
Chodzi mi o wyszukiwarke zrobiona w Delphi. Jak np wpisze w Edit1 jakas litere to zeby rozwinelo sie pod edit pole z wszystkimi nazwami danych zaczynajacych sie na ta litere, gdy wpisze 2 litere w polu pod Editem wyswietla sie juz mniejszy zbior nazw danych zaczynajacych sie od tych liter itd....

Nazwy danych powinny byc pobierane z ListView !

Czy jest mzliwosc zrobienia czegos takiego. ?? [???]

Pozdrawiam ;-)

0

Jest to proste, należy tylko użyć TComboBox. Więc robisz tak: tworzysz 2 obiekty typu TStringList, do pierwszego przepisujesz wszystkie dane z TListView. Następnie w OnKeyPress TComboBox musisz sprawdzać dotychczas wpisany tekst i porównywać go z kolejnymi elementami pierwszego TStringList, jeżeli się zgadza to zapisz do drugiego TStringList. Następnie przepisz zawartość drugiego TStringList do Items TComboBox'a.

Rozwiązanie można znaleźć w źródłach SynEdit.

--
Vogel [Delphi 6 PE]

Life is just a dream, you know...
[Cowboy Bebop]

0

[???] [???] [???] [???] [???] [???]

Od nie dawna zajmuje sie Delphi i chyba nie za bardzo rozumie :-(

Moze jest gdzies jakis przykladowy kod zrodlowy !?

Pozdrawiam

0

Niech będzie. No to jedziemy:
[code]
type
TForm1 = class(TForm)
...
end;

implementation

procedure TForm1.ComboBox1OnKeyPress(Sender: TObject; var Key: Char);
var
j: Integer; // zgadnijcie dlaczego j :P
begin
with ComboBox1, Items do begin
BeginUpdate;
Clear;
for j:=0 to FStringList.Count - 1 do begin
if Pos(ComboBox1.Text, ListView1.Items.Item[j].Caption]) > 0
then Add(ListView1.Items.Item[j].Caption)
end;
EndUpdate
end;
ComboBox1.SelStart:=Length(ComboBox1.Text)
end;
[/code]

Powinno działać.

--
Vogel [Delphi 6 PE]

Life is just a dream, you know...
[Cowboy Bebop]

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