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

, S) = 0

   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

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

 

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить