Domanda

Voglio ottenere tutti gli oggetti e elementi secondari nel mio ListView, ma tutto quello che ottiene è "TlistItem"

Ecco il mio codice:

procedure TFrameAnalyzer.AddEntry(opcode:word;data:Array of byte;direction:byte);
begin
  MessageBox(0,PChar(sListView1.Items.Item[4].ToString),'',0);
end;

Come faccio ad avere il nome dell'oggetto come stringa e il nome del suo 2 elementi secondari?

È stato utile?

Soluzione

Non è possibile ottenere il nome della voce, perché non ha nome. Ha un Caption però, e una proprietà di tipo SubItems TStrings. Tutto questo può essere facilmente trovato nella documentazione Delphi BTW. Guardate in classi TListItem e TListItems.

Così si potrebbe fare qualcosa di simile

procedure TFrameAnalyzer.AddEntry(opcode:word;data:Array of byte;direction:byte);
var
  Item: TListItem;
  s: string;
begin
  Item := sListView1.Items.Item[4];
  s := Item.Caption + #13#10
    + '  ' + Item.SubItems[0] + #13#10
    + '  ' + Item.SubItems[1];
  MessageBox(0, PChar(s), nil, 0);
end;

Tutti la gestione degli errori omesso, si dovrebbe certamente non accedere alle proprietà di matrice in questo modo senza verificare prima che gli indici sono validi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top