Szukanie wyrazu w ListView

0

Witam wszystkich!

Mam drobny problem.
Mam ListView oraz ComboBox i <ort>chcĘ</ort> aby było coś takiego, że gdy wpiszę do ComboBox np. "MitS" to program sam znajdzie w ListView szukane słowo czyli "MitS", tylko że chciał bym zrobić coś takigo, że jak wpiszę literkę "M" to w ListView od razu przechodzi do słów zaczynających się na tą litere.

Jak to zrobić proszęo pomoc...:-/

Dzięki ...

0

Pozwolisz, że "podepnę" się pod twojego posta ?
Mam podobny problemik
Nie wiem jak przechwycić autouzupełnianie czyli właściwość AutoComplete(czy jakoś tak) z ComboBox'a lub ListBox'a na Edita

0

To powinno zadziałać:

var
 i, Found : Integer;
begin
 for I := 0 to ListView1.Items.Count -1 do 
 begin
  Found := Pos(Combobox1.Text, ListView.Items[i]); 
  if (Found > 0) and (ListView1.Items[i][1] = ListView1.Text[1]) then
  begin
   ListView1.ItemIndex := i; 
   Break; 
  end;
 end;
end;
0

niestety nie działa. Pokazują się błędy wszędzie tam gdzie sąnawiasy kwadratowe :/

0

Nom sorki, troche to poprawiłem:

var
i,found:integer;
begin
 for I := 0 to listview1.Items.Count -1 do 
 begin
  Found := Pos(combobox1.Text, listview1.Items[i].Caption);
  if (Found > 0) and (listview1.Items[i].Caption[1] = combobox1.Text[1]) then
  begin
   listview1.ItemIndex := i; 
   Break; 
  end;
 end;
end;
0

No coraz lepiej, ale to nadal nie to :-|

bo rzecz jest taka:
tym razem kompilator błędów nie pokazuje ale gdy wpisuje tekst to combobox to nic sięnjie dzieje ...
ciekawe czemu.

jak byś mógł jeszcze okiem na to rzucić był bym wdzięczny. Bo ten kod jest bardzo mi potrzebny ...

0

a jeszcze jedno dla osoby, która się dołączyłą do posta...
Odpowiadam na pytanie:


procedure TForm1.ComboBox1Change(Sender: TObject);
var
   LengthOldText: Integer;
   lcount : Integer;
begin
 LengthOldText:=Length(ComboBox1.Text); //zapamietanie dlugosci wpisanego ciagu
 if ComboBox1.Text='' then exit; //jesli jest on pusty to exit
with ComboBox1 do
  for lcount:=0 to Items.Count-1 do //sprawdzamy wszystkie item'y
   if CompareText(Text,Copy(Items[lcount],1,Length(Text)))=0 then //porownanie bez uwzglednienia polskich liter
    begin
     Text:=Items[lcount]; //wpisanie calego tekstu
     SelStart:=LengthOldText; //ustawienie skad ma zaczac zaznaczac
     SelLength:=Length(Text)-LengthOldText; //ustawienie dokad ma zaznaczac
     exit; // jesli znalaz odpowiednik to exit
    end;
end;

Prosze bardzo...

A na mój problem nadal oczekuję odpowiedzi.

0

między liniami listview1.itemindex:=i, a break dajesz np. taki kod:

listview1.HideSelection:=false;
listview1.Items.item[i].Selected:=true;
0

Dzięki działa :D

Tylko nie wiem jeszcze jak zrobić tak aby bo naciśnięciu tego Buttona od razu było widać wyszukany wpis bez przewijania scrolla? Czyli gdy jest np. 200 wpisów i np. 66 to "mits" to jak wpiszę w ComboBox to owszem mi zaznaczy wyszukany plik ale najpierw muszę ListView scrollBarem przesunąć, aby zobaczyć go zaznaczonego.

A tak poza tym jest git :)

Może kiedyś sięodwdziecze ... :)

0

Po tym kodzie który ci ostatnio podałem dodaj jeszcze taki:

 listview1.Scroll(listview1.Items.Item[i].Left,listview1.Items.Item[i].top);
0

Dzięki :D

Działa !!!
Kiedyś sięodwdzięcze :)

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