Szukanie wyrazu w ListView

Odpowiedz Nowy wątek
2005-02-01 18:26

Rejestracja: 15 lat temu

Ostatnio: 12 lat temu

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 ...


MitS

Pozostało 580 znaków

2005-02-01 21:06

Rejestracja: 15 lat temu

Ostatnio: 8 lat temu

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


Pozostało 580 znaków

2005-02-01 21:10

Rejestracja: 15 lat temu

Ostatnio: 12 lat temu

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;

I am the Angel of Death... Come with me...

Pozostało 580 znaków

2005-02-02 07:41

Rejestracja: 15 lat temu

Ostatnio: 12 lat temu

0

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


MitS

Pozostało 580 znaków

2005-02-02 14:48

Rejestracja: 15 lat temu

Ostatnio: 12 lat temu

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;

I am the Angel of Death... Come with me...

Pozostało 580 znaków

2005-02-02 16:14

Rejestracja: 15 lat temu

Ostatnio: 12 lat temu

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 ...


MitS

Pozostało 580 znaków

2005-02-02 16:17

Rejestracja: 15 lat temu

Ostatnio: 12 lat temu

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.


MitS

Pozostało 580 znaków

2005-02-02 16:28

Rejestracja: 15 lat temu

Ostatnio: 12 lat temu

0

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

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

I am the Angel of Death... Come with me...

Pozostało 580 znaków

2005-02-02 21:56

Rejestracja: 15 lat temu

Ostatnio: 12 lat temu

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 ... :)


MitS

Pozostało 580 znaków

2005-02-03 18:16

Rejestracja: 15 lat temu

Ostatnio: 12 lat temu

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);

I am the Angel of Death... Come with me...

Pozostało 580 znaków

2005-02-03 21:11

Rejestracja: 15 lat temu

Ostatnio: 12 lat temu

0

Dzięki :D

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


MitS

Pozostało 580 znaków

Odpowiedz

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