0
このコードをlisviewからクリップボードにまとめました。リストビューの選択した複数の行をDelphiのクリップボードにコピーする
procedure TFmainViewTCP.Copy1Click(Sender: TObject);
var
Str:String;
k :Integer;
lItem:TListItem;
begin
repeat
lItem:=lvConnection.Selected;
Str:=lItem.Caption;
for k:=0 to lvConnection.Columns.Count-2 do
begin
Str:=Str+' '+lItem.SubItems[k];
end;
Clipboard.AsText:=Clipboard.AsText+ sLineBreak +Str; {copy into clipboard}
until lItem.Selected=True;
end;
私はこれが正しく動作している場合、それは私のためにすべての行をコピーしていないことを確認していません。誰かがこれで私を助けることができますか?
ありがとうございました
Nitpicking:リテラルの代わりに 'sLineBreak'を使用することをお勧めします。 (そしてフォーマッタを実行する、明らかに:-P) –
@PA:一度に1つずつすべての項目をループするのではなく、ListViewの 'GetNextItem()'メソッドを使うべきです。私はそれに応じて例を編集しました。 –
上記のコードを使用したとき、lvConnection.GetNextItem(nil、sdBelow、[isSelected])からnilを返しました。 lItemをlvConnection.Selectedでシードすると、残りのコードは期待通りに機能します。 –