§1 テキストエディタの制作 VB6
 (4) クリップボードの追加 U 前へ 目次へ 次へ 

 2. 切り取り、コピー、貼り付けのテスト

 Windowsシステムのクリップボードをプログラムで使うには、Clipboardオブジェクトによって行う。Clipboardもオブジェクト(部品)ではあるが、フォームに貼り付ける必要はない。
 Clipboardオブジェクトには、テキストやグラフィックを記憶させることができる。ここでは、テキストについて学習する。

Clipboardオブジェクトのメソッド(命令)
SetText   テキストをクリップボードに記憶させる。
GetText クリップボードに記憶されているテキストを取り出す。
Clear クリップボードの内容をクリアする。

 テキストボックス(Text1)との連携

テキストボックス → クリップボード
 クリップボードに選択したテキストを記憶させるには次のようにする。

Clipboard.SetText Text1.SelText

クリップボード → テキストボックス
 クリップボードのテキストをテキストボックスに挿入する。

Text1.SelText = ClipBoard.GetText


 ボタンを3個追加する。切り取り、コピー、貼り付けを順にCommand2、Command3、Command4とする。

図1-4-3

・プログラムリスト

Private Sub Command2_Click()    '切り取り
    Clipboard.Clear                    'クリップボードの内容を消去
    Clipboard.SetText Text1.SelText    '選択テキストをクリップボードへ
    Text1.SelText = ""                   '選択テキストを削除(空の文字列を記憶する)
End Sub

Private Sub Command3_Click()    'コピー
    Clipboard.Clear                    'クリップボードの内容を消去
    Clipboard.SetText Text1.SelText    '選択テキストをクリップボードへ
End Sub

Private Sub Command4_Click()    '貼り付け
    Text1.SelText = Clipboard.GetText  'クリップボードのテキストをText1に挿入
End Sub

 クリップボードにデータを記憶させる前に、念のためクリップボードをの内容をクリアしておく。
 切り取りとコピーの処理の違いは、クリップボードにデータを記憶させた後、選択しているテキストを消すか消さないかである。選択した範囲を消すには、現在選択している文字列を空(から)の文字列("")に置き換える、すなわち空(から)の文字列をSelTextプロパティに記憶させるだけで良い。


問題点1

 範囲選択をしていないときに切り取りやコピーをすると、クリップボードの内容がクリア(消去)される。
 一般的なアプリケーションでは、範囲選択されていないときは切り取りやコピーが選択できないようにグレーアウトになっている。

 範囲選択されているかどうかは、SelLengthまたはSelTextを調べればわかる。SelLengthが0のとき、または、SelTextが空(から)のときは範囲選択がされていないことになる。
 範囲選択されていないとき、EnabledプロパティをFalseに設定すれば、選択できない(イベントを認識させない)状態にすることができる。この状態がグレーアウトである。Enableプロパティの働きは、ボタンもメニューも同じである。
 この問題点は、次で解決する。


 (4) クリップボードの追加 U 前へ 目次へ 次へ 
Copyright © 2001,2002 Hiroshi Masuda 

 

 

inserted by FC2 system