Ik heb een listview die ik vul met data uit een query, dmv in een procedure aanroepen van de volgende code:

Code:
procedure TFormMain.RefreshKksLstvwPart;
var item: TListViewItem;
begin
  DataModule2.FDQKksTekSelect.ParamByName('idTek').AsInteger := StrToInt(EditTekId.Text);
  DataModule2.FDQKksTekSelect.Open;
  lstvwKks.Items.Clear;
  lstvwKks.BeginUpdate;
  try
    while not DataModule2.FDQKksTekSelect.Eof do
     begin
       item := lstvwKks.Items.Add;
       item.Objects.FindObjectT<TListItemText>('Kks').Text := DataModule2.FDQKksTekSelect.FieldByName('idKks').AsString;
dit gaat perfect de listview word keurig gevuld.Maar nu wil ik de data weer uit de listview aanroepen om te vergelijken met een andere waarde.

de onderstaande regel levert mij een lege string op,

Code:
showmessage(lstvwkks.Items[lstvwkks.ItemIndex].Data['Id'].AsString);
het is een listview met een Dynamic appearance, zie foto

Name:  listview.JPG
Views: 869
Size:  17.2 KB