[Delphi]クリップボード テキストのみ






トップページへ

※全てのDelphi(楽天市場で探すamazonで探す)で動作する保証はありません。また、内容に関し管理人は全ての責任を負いかねます

※説明に必要な部分しか記述していません。

目次

・サンプル1 ClipBrdユニットを使用

・サンプル2 TMemoを使用


サンプル1 ClipBrdユニットを使用

procedure TForm1.Button1Click(Sender: TObject);

//uses句に ClipBrd を追加して下さい
//フォーム上に TEdit, TLabel を配置して下さい

//●概要
//・Edit1 に適当な文字列の入力
//・Edit1 の中身を変えることで「クリップボードからの取得」を明確化
//・クリップボードから取得して Label1 にセット

begin

    //クリック前に Edit1に適当な文字列を入力して下さい。
    //クリップボードへ値をセットします。
    ClipBrd.Clipboard.AsText := Edit1.Text;

    Edit1.Text := '転送しました';

    //クリップボードから値を取得します
    Label1.Caption := ClipBrd.Clipboard.AsText;

end;

このようになります。


サンプル2 TMemoを使用

概要

メモに文字列をセット。ボタンのクリックでメモ内の文字列を全て選び、クリップボードへコピーします。

 

注意点は Memo.CopyToClipboardは「選択されている文字だけをコピーする点」です。ですので、通常は .SelectAll とともに使用します。

 

テスト

フォームに TMemo と TButton を配置して下さい。

procedure TForm1.FormCreate(Sender: TObject);
begin
    Memo1.Lines.Text := 'テスト文章'+ #13#10 +
                        'あいうえおかきくけこさしすせそ'+ #13#10 +
                        'ABCDEFGHI'+ #13#10 +
                        '01234567';
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
    Memo1.SetFocus;
    Memo1.SelectAll;
    Memo1.CopyToClipboard;

end;

 

実行後

クリップボードにコピーされています。

 

補足

・.Button1Click の Memo1.SetFocus; は無くても動作します。記述は私の好みです。

・Memo1.PasteFromClipboard; メソッドもあります。

・コピー&ペーストする前にクリップボードの内容確認をする場合、次の方法があります。

    if Clipboard.HasFormat(CF_TEXT) = False then begin
    	MessageDlg('クリップボードはテキスト以外のものです', mtWarning, [mbOk], 0);
        Exit;
    end;





関連記事
[Delphi]日付や時刻の分解と生成

[Delphi]2次元配列

[Delphi]定数

[Delphi]例外エラーの一部抜粋

[Delphi]小数の切り上げ、切り捨て