Einzelnen Beitrag anzeigen

Benutzerbild von littleDave
littleDave

Registriert seit: 27. Apr 2006
Ort: München
556 Beiträge
 
Delphi 7 Professional
 
#3

Re: Volltextsuche in Listview

  Alt 30. Okt 2008, 13:34
Also eine einfache Methode ist die Suche mit Delphi-Referenz durchsuchenPos:

Delphi-Quellcode:
// Überprüft, ob in "Item" irgendwo "aText" steht
function ItemHasText(Item: TListItem; const aText: string): boolean;
var i: integer;
begin
  result := True;
  if Pos(AnsiUpperCase(aText), AnsiUpperCase(Item.Caption)) > 0 then
     exit;

  for i:=0 to Item.SubItems.Count-1 do
    if Pos(AnsiUpperCase(aText), AnsiUpperCase(Item.SubItems[i])) > 0 then
      exit;

  result := False;
end;

// Durchsucht "aListView" nach "aText"
function FindItemText(aListView: TListView; const aText: string): TListItem;
var i: integer;
begin
  for i:=0 to aListView.Items.Count-1 do
  begin
    result := aListView.Items[i];
    if ItemHasText(result, aText) then
       exit;
  end;
  result := nil;
end;
Delphi-Quellcode:
// Aufruf:
procedure TForm1.Button1Click(Sender: TObject);
var FoundItem: TListItem;
begin
  FoundItem := FindItemText(ListView1, Edit1.Text);
  if not Assigned(FoundItem) then
     ShowMessage('Text nicht gefunden')
  else
     FoundItem.Selected := True;
end;
Ungetestet, einfach mal so eingegeben
Jabber: littleDave@jabber.org
in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0
  Mit Zitat antworten Zitat