21. marts 2015 - 15:57Der er
7 kommentarer og 1 løsning
Søg i en listview collone.
Hej. :) Har en listview med 3 colloner. 1. Adresse 2. Navn 3.By Hvordan kan jeg med en kode KUN søge i collone 3 (By), med en edit. Det skal os være sådan at når jeg skriver et ord i min edit søger den efter det ordet og sætter focus/Selecter.
Hej kroning, har virkelig ikke kunne få det til at virke bruger denne kode:
Min listview hedder (Listview1), og min edit hedder (Edit1)
procedure LV_FindAndSelectItems(lv: TListView; const S: string; column: Integer); var i: Integer; found: Boolean; lvItem: TListItem; begin Assert(Assigned(lv)); Assert((lv.ViewStyle = vsReport) or (column = 0)); Assert(S <> ''); for i := 0 to lv.Items.Count - 1 do begin lvItem := lv.Items[i]; if column = 0 then found := AnsiCompareText(lvItem.Caption, S) = 0 else if column > 0 then begin if lvItem.SubItems.Count >= Column then found := AnsiCompareText(lvItem.SubItems[column - 1], S) = 0 else found := False; end else found := False; if found then begin lv.Selected := lvItem; end; end; end;
procedure TForm1.Button1Click(Sender: TObject); var lvItem: TListItem; begin // in der Spalte subitem[0] den Text aus Edit1 suchen LV_FindAndSelectItems(Listview1, Edit1.Text, 1); ListView1.SetFocus; end;
procedure LV_FindAndSelectItems(lv: TListView; S: string; column: Integer); var i: Integer; found: Boolean; lvItem: TListItem; begin Assert(Assigned(lv)); Assert((lv.ViewStyle = vsReport) or (column = 0)); Assert(S <> ''); S:=AnsiUpperCase(S); for i := 0 to lv.Items.Count - 1 do begin lvItem := lv.Items[i]; if column = 0 then found := Pos(S, AnsiUpperCase(lvItem.Caption)) > 0 else if column > 0 then begin if lvItem.SubItems.Count >= Column then found := Pos(S,AnsiUpperCase(lvItem.SubItems[column - 1])) > 0 else found := False; end else found := False; if found then begin lv.Selected := lvItem; end; end; end;
procedure TForm1.Button1Click(Sender: TObject); begin LV_FindAndSelectItems(Listview1, Edit1.Text, 2); end;
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.