// Call FindCaption Method to search for a list view item labeled by the
// string specified as the Value parameter
Code: |
// Call FindCaption Method to search for a list view item labeled by the // string specified as the Value parameter
// Syntax:
function FindCaption(StartIndex: Integer; Value: string; Partial, Inclusive, Wrap: Boolean): TListItem;
// Example, Beispiel:
procedure TForm1.Button1Click(Sender: TObject); var lvItem: TListItem; begin lvItem := ListView1.FindCaption(0, // StartIndex: Integer; '99', // Search string: string; True, // Partial, True, // Inclusive False); // Wrap : boolean; if lvItem <> nil then begin ListView1.Selected := lvItem; lvItem.MakeVisible(True); ListView1.SetFocus; end; end;
// To search for a list view subitem (also for items), use this function:
{ Search for text in a listview item @Param lv is the listview, supposed to be in vaReport mode @Param S is the text to search for @Param column is the column index for the column to search , 0-based @Returns the found listview item, or Nil if none was found @Precondition lv nil, lv in report mode if column 0, S not empty @Desc The search is case-insensitive and will only match on the complete column content. Use AnsiContainsText instead of AnsiCompareText to match on a substring in the columns content. Created 14.10.2001 by P. Below }
function FindListViewItem(lv: TListView; const S: string; column: Integer): TListItem; var i: Integer; found: Boolean; begin Assert(Assigned(lv)); Assert((lv.viewstyle = vsReport) or (column = 0)); Assert(S <> ''); for i := 0 to lv.Items.Count - 1 do begin Result := lv.Items[i]; if column = 0 then found := AnsiCompareText(Result.Caption, S) = 0 else if column > 0 then found := AnsiCompareText(Result.SubItems else found := False; if found then Exit; end; // No hit if we get here Result := nil; end;
// Example call:
procedure TForm1.Button1Click(Sender: TObject); var lvItem: TListItem; begin // Search subitem[0] for text from edit1 // in der Spalte subitem[0] den Text aus Edit1 suchen lvItem := FindListViewItem(ListView1, Edit1.Text, 1); // if found, then show the item // falls item gefunden, dann anzeigen if lvItem <> nil then begin ListView1.Selected := lvItem; lvItem.MakeVisible(True); ListView1.SetFocus; end; end;
// Function to search items and select if found
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 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;
|
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!