さて、前回は長くなってきたので半端なところできってしまいました。
今度こそクリップボードのデータを読み込みますよ。
次のコードを書き足してください。
if not clip.HasFormat(CF_TEXT) then begin
showmessage('( ^ω^)クリップボードの中身がテキスト形式じゃないお・・・');
exit;
end;
tex.Text:=clip.AsText; //☆これ
tex.Text:=clip.AsText;
これは、一番簡単な、A:=B;って代入文ですね。
左辺に右辺を代入します。代入ってのは、コピーのことです。
二つとも.が付いてるので、日本語で読むと、
texのTextプロパティーに、clipのAsTextプロパティーを代入せよ。
ってことになります。
texはTStringListでした。TStringListのTextプロパティーは、
「複数行文字列の、文字列リスト」を、「改行コード区切りの文字列として扱う」のです。
clipはTClipboardですから、TClipboardのAsTextプロパティーの意味を見ると、
「クリップボードの内容を文字列として表します」とあります。
クリップボードには複数行がコピーされることもありますから、
それを(文字列リストではなくて)文字列として表す、ってことは、
「改行区切りの文字列」ってことですね。
これで両辺の型が同じ「文字列型」となりました!
そしてめでたく代入できるわけです。
ってことは、置換したあとのデータをクリップボードに入れる方法もわかりますね。
そこまでコードを書いちゃいましょう。
procedure TForm1.Button1Click(Sender: TObject);
begin
if not clip.HasFormat(CF_TEXT) then begin
showmessage('( ^ω^)クリップボードの中身がテキスト形式じゃないお・・・');
exit;
end;
tex.Text:=clip.AsText;
//ここに置換処理が入る
clip.AsText:=tex.Text;
end;
もうすぐ完成!
ところで、//ここに置換処理が入る というのはなんだと思いますか?
これ、コメントといって、プログラムでは無視される部分のことです。
//とスラッシュを二つ書いた行は、以降コメントになります。
{と}で括った部分は、複数行でもコメントになります。
だから・・・
//ボタンがクリックされたときのイベントの中身
procedure TForm1.Button1Click(Sender: TObject);
begin
{
クリップボードの中身をテキストかチェックした後、
中身を文字列リストに保存し、
置換した後
再びクリップボードに上書きする処理です
}
//もし、 clipのフォーマットがテキスト ではない ならば
if not clip.HasFormat(CF_TEXT) then begin
//警告を表示して
showmessage('( ^ω^)クリップボードの中身がテキスト形式じゃないお・・・');
//手続きを終わる
exit;
end;
//ここに来たということはフォーマットがテキストだったということなので
//texにクリップボードテキストをうつし
tex.Text:=clip.AsText;
//ここに置換処理が入る
//再び戻す
clip.AsText:=tex.Text;
end;
これもちゃんとコンパイルできます。
コメントをたくさんつけるとあとでわかりやすくていいです。
こんなにつけると逆にごちゃごちゃするけど。
さぁ、いよいよ次は置換処理ですよおおおおおおおお
コンテンツ
最新の12件
2023-06-12
2021-02-15
2013-06-19
2012-07-14
2012-02-04
2012-01-06
2011-03-31
2010-08-26
2010-03-15
2009-10-21
2009-02-12
2008-11-18
メニュー編集
- counter: 2283
- today: 2
- yesterday: 0
- online: 1