Как получить элементы и подпункты в виде списка? - PullRequest
1 голос
/ 18 июля 2009

Я хочу получить все элементы и подэлементы в моем списке, но все, что я получаю, это "TlistItem"

Вот мой код:

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

Как мне получить имя элемента в виде строки и название его 2 подпунктов?

1 Ответ

5 голосов
/ 18 июля 2009

Вы не можете получить название предмета, потому что у него нет имени. Он имеет Caption и свойство SubItems типа TStrings. Все это можно легко найти в документации Delphi. Изучите классы TListItem и TListItems.

Так что вы могли бы сделать что-то вроде

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;

Вся обработка ошибок опущена, вы, конечно, не должны обращаться к свойствам массива таким образом, не проверив сначала, что индексы верны.

...