Mega Code Archive

 
Categories / Delphi / Examples
 

Listitemdataproperty

USE A TLISTVIEW'S TLISTITEM data PROPERTY... first a procedure to put data IN to the data field (you can ignore most of the code below that is not directly relevant, obviously) ///////////////////////////////////////////////////// procedure TStepPropertiesForm.PutContainerDataOnForm; var objContainer: Container; containersNum: Integer; containerName: String; containerDescription: String; tempString: String; containerID: Integer; ListItem: TListItem; begin try objContainer := CoContainer.Create; if (containersRecSet.RecordCount > 0) then begin containersNum := containersRecSet.RecordCount; containersRecSet.MoveFirst; //get rid of anything that's already in the ListBox ContainersListView.Items.Clear; while not(containersRecSet.EOF) do begin containerID := containersRecSet.Fields['ContainerID'].Value; containerName := objContainer.GetName(containerID); with ContainersListView do begin ListItem := Items.Add; ListItem.Caption := containerName; ListItem.ImageIndex := 0; ListItem.Data := TObject(containerID); end; containersRecSet.MoveNext; end; end; except tempString := 'The program is having problems communicating across the network'; Application.MessageBox(PChar(tempString), ' Internal Error', mb_OK); end; objContainer := nil; end; and next a procedure that gets data out of the same place: ////////////////////////////////////////////////////////////////////// procedure TStepPropertiesForm.ContainersListViewClick(Sender: TObject); //if the user selects an item in the ContainersListView, then show //another ListView to the right of it, where this 'EntitiesListView' //will show wee bitmaps of all of the entities that have been dropped //into that container so far. If there are no dropped entities for the //container, then show an empty EntitiesListView. Note that in order to //show the entity images in the EntitiesListView, we need to populate //a (new) ImageList that we can then tell the EntitiesListView to use... var itemNumber: Integer; //tempString: String; tempListItem: TListItem; containerName: String; containerID: Integer; tempString: String; begin if (ContainersListView.SelCount > 0) then begin tempListItem := ContainersListView.Selected; itemNumber := tempListItem.Index; containerName := ContainersListView.Items[itemNumber].Caption; containerID := Integer(ContainersListView.Items[itemNumber].Data); tempString := 'containerID is: ' + IntToStr(containerID); //tempString := containerName; ShowMessage(tempString); //DEBUGGING... //tempString := ; //Application.MessageBox(PChar(tempString), ' Programmers Debug Window', mb_OK); end; end;