我有一个包含八列和一个弹出菜单的列表视图。[截屏]
I have this code which is work great to copy into clipboard all items and sub items when a row or all rows selected.
procedure TForm1.CopyURL1Click(Sender: TObject);
var
lv : TbsSkinListView;
s : string;
c,f,k : integer;
begin
lv := bsSkinListView1;
Clipboard.Clear;
s := '';
for f := 0 to lv.Items.Count - 1 do
begin
k := 0;
if lv.Items[f].Selected then
begin
s := s + Format('%s : %s, ',[lv.Columns[k].Caption, lv.Items[f].Caption]);
for c := 0 to lv.Items[f].SubItems.Count - 1 do
begin
Inc(k);
s := s + Format('%s : %s, ',[lv.Columns[k].Caption, lv.Items[f].SubItems[c]]);
end;
SetLength(s, Length(s) - 2);
s := s + #$D#$A;
end;
end;
clipboard.AsText := s;
end;
我需要的是我只想复制第一列的标题(列“标题”)及其子项 [0],并将第 8 列标题(列“URL”)及其子项 [7] 复制到clipboard, when a row or all rows selected.
有时 sub items[7] 是空的,它不应该得到 index out of bounds (7) 错误消息。
从我上面的截图中,当我复制第一行时,结果应该像这样返回
Title : 10 Things You Didn't Know... URL : <=== this is an empty sub items [7]
复制第二行时:
Title : 10 Things You Didn't Know... URL : http://www.example.com
选择的所有行:
Title : 10 Things You Didn't Know... URL :
Title : 10 Things You Didn't Know... URL : http://www.example.com
我已经尝试过这个链接,但它不符合我的需要或无法正常工作。我正在使用 Delphi XE 4。我如何实现这一点?任何帮助将不胜感激。