§1 テキストエディタの制作 VB6 | |
(4) クリップボードの追加 T |
クリップボードとは、Windowsに用意されているデータ転送の手段である。
Windowsの多くのアプリケーションでは、データの切り取り、コピー、貼り付けをサポートしている。これらは基本的にクリップボードを経由して処理されている。
ユーザはクリップボードを特に意識することなく、切り取り、コピーや貼り付けをすることができる。
ここでは、テキストデータを対象にプログラムしていく。
特別なプログラムがなくても、フォームにテキストボックスコントロールを貼り付け、テキストボックス内で右クリックすると切り取り、コピー、貼り付けのメニューが表示され、クリップボードを利用できるようになっている。
1. テキストの範囲選択の情報
クリップボードへの切り取りやコピーをする前には、範囲選択をする。範囲選択した文字列や位置などの情報を参照する必要がある。テストプログラムを作成して参照方法を確認する。
テキストを範囲選択すると図1-4-1のように選択範囲が青くなる(青色反転表示)。
選択の方法は、@の位置でマウスの左ボタンを押したままAまで移動させる(ドラッグする)。または、カーソルを@に移動させ、Shiftキーを押したままで右カーソル移動キー[→]をAまで押す。
図1-4-1 |
新規フォームを用意して、テキストボックス1個(MultiLine=True, ScrollBars=2 - 垂直)、ボタン1個、ラベル3個を配置する。
テキストボックスに表示させる内容は適当で良い。
図1-4-2 |
テキストを範囲選択してからCommand1ボタンをクリックするとLabel1に選択開始位置、Label2に選択文字数、Label3に選択した文字列が表示されるようにする。
・プログラムリスト
Private Sub Command1_Click() Label1.Caption = "選択開始位置=" & Str(Text1.SelStart) Label2.Caption = "選択文字数(長さ)=" & Str(Text1.SelLength) Label3.Caption = "選択文字列=" & Text1.SelText End Sub
プロパティについて文字のカウント方法は、全角、半角の区別なく、1文字と数える。
SelStart 選択の開始位置。先頭からの文字数で表される。先頭の文字は0文字目とする。 SelLength 選択した文字数。 SelText 選択した文字列。
範囲選択をしないで、各プロパティを参照(Command1ボタンをクリック)するとSelLengthは0、SelTextは空(から)となる。SelStartはカーソル位置(先頭からの文字数)を表す。
(4) クリップボードの追加 T | |
Copyright © 2001,2002 Hiroshi Masuda |