4

SQLデータベースに接続し、データセットを取得して、そのデータをグリッドに表示するツールに取り組んでいます。ユーザーは、セルのブロック(長方形のみ)を選択し、CTRL+Cを押してクリップボードにコピーできる必要があります。

これを行うにはどうすればよいですか:

  • Excelに貼り付けることができる形式で?このための既製のものがすでにあることを願っています。Excelのようなすべてのクリップボード機能は必要ありません。長方形のセルのグループを強調表示して、クリップボードにコピーするだけです。

  • それがでできるなら、TStringGrid私はその中で私の機能を維持したいと思いますが、これをサポートするコンポーネントで動作することもできます。

4

1 に答える 1

7

TAB delimited text次のコードのように、セルの値を としてコピーすることができます。

procedure TForm1.Button1Click(Sender: TObject);
var
  S: string;
  X, Y: Integer;
begin
  S := '';
  for Y := StringGrid1.Selection.Top to StringGrid1.Selection.Bottom do
  begin
    for X := StringGrid1.Selection.Left to StringGrid1.Selection.Right - 1 do
      S := S + StringGrid1.Cells[X, Y] + #9;
    S := S + StringGrid1.Cells[StringGrid1.Selection.Right, Y] + sLineBreak;
  end;
  Delete(S, Length(S) - Length(sLineBreak) + 1, Length(sLineBreak));
  Clipboard.AsText := S;
end;
于 2012-08-11T18:00:56.450 に答える