Search code examples
delphilistviewlistboxlistboxitems

How do I add an item to a TListBox and associate it with a data object?


See the code:

function ShowItem(MyData: TMyData): TListItem;
var
  vListItem: TListItem;
begin
  vListItem := ListView1.Items.Add;
  vListItem.Data := MyData;

  vListItem.ImageIndex := 1;
  vListItem.Caption := MyData.Caption;

  Result := vListItem;
end;

What do I need to do to get this to work for TListBox? ListView.Items property seems to be that of TListItem, where as ListBox.Items is not, which means the function will not be able to return the correct parameter for TListBox.

How may I convert this for TListBox?

Thanks


Solution

  • This should do:

    function ShowItem(MyData: TMyData): Integer;
    begin
      Result := ListBox1.Items.AddObject(MyData.Caption, MyData);
    end;