Szukam funkcji wyszukujacej dane w TListView? [???]
W artykułach jest coś o funkcji Pos, która podaje Ci pozycję danego łańcucha znaków w jakimś innym łancuchu. Bedziesz tylko musiał sprawdzać każdy item po kolei.
To nie jest do konca to o co mi chodzilo. Moze wyjasnie najpierw dokladnie nad czym pracuje, a mianowicie mam dwie TListView i porboje napisac funkcje ktora wyszuka mi wartosc w odpowiedniej kolumnie TlistView1 i wartosc wszstykich elementow z tej <ort>linji </ort>z wszystkich innych kolumn wyswietli mi na TListView2.
quicksort, babelkowe (czy jak to sie tam zwie)
po prostu lecisz kazda pozycje (item lub subitem) po kolei
Z pos chodzilo o to, ze jak funkcja zwroci wartosc 0 (lub -1, poprawcie mnie) to znaczy, ze dany ciag znajduje sie w innym ciagu, np
if Pos('ala', 'ala ma kota') > 0 then
//w podanym ciagu jest slowo ala
var//. wyszukiwanie
i: Integer;
begin
for i := ListView1.ItemIndex+1 to ListView1.Items.Count - 1 do
if Pos(UpperCase(Edit1.Text),Uppercase(ListView1.Items[i].Caption)) > 0 then
begin
// Application.ProcessMessages; <- to nie potrzebne chyba
ListView1.SetFocus;
ListView1.ItemIndex := i;
Exit;
end;
ListView1.ItemIndex := -1;
end;
ale to troche dziwnie działa, jak chcesz to przerób sobie i już
Z pos chodzilo o to, ze jak funkcja zwroci wartosc 0 (lub -1, poprawcie mnie) to znaczy, ze dany ciag znajduje sie w innym ciagu, np
Pos zwraca 0 jeżeli ciąg się nie zawiera w drugim, albo miejsce, gdzie znajduje się pod-ciąg. Napisałeś źle, ale przykład był dobry :)
Tylko po znalezieniu tej wartosci w ListView1 jak dodac linje z wartosciami pozostalych kolumn do ListView2? np.
kolumna 1 | kolumna2 |
wartosc(x) | wartosc(y) |
| |
| |
wyszukam wartosc(x) i wyswiteli mi ta cala linje do ListView2
Tylko po znalezieniu tej wartosci w ListView1 jak dodac linje z wartosciami pozostalych kolumn do ListView2? np.
kolumna 1 | kolumna2 |
wartosc(x) | wartosc(y) |
| |
| |
wyszukam wartosc(x) i wyswiteli mi ta cala linje do ListView2
Co tu nie wiedzieć zobacz tu
http://4programmers.net/Forum/viewtopic.php?id=46616
tylko w tym przykładzie jest dla 3 kolumn musisz przerobić dla tylu co Ty masz
Juz mam. thx.... ;-)
Ehhh ;-| ja juz sam nie wiem probowalem ale mi cos nie wyszlo... mam tylko tyle
procedure TForm8.SpeedButton1Click(Sender: TObject);
Var
i,l: Integer;
ListItem: TListItem;
begin
for i := MaInForm.ListView2.ItemIndex+1 to MaInForm.ListView2.Items.Count - 1 do
if Pos(UpperCase(Edit2.Text),UpperCase(MaInForm.ListView2.Items[i].SubItems[0])) > 0 then
begin .... i co dalej? moze mi ktos pomoc i to rozpisac .