[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;