[ top ] [ prev ] [ up ] [ next ]
Phi::Edit
Windows の 1 行編集コントロールのラッパー
標準的な Windows 編集コントロールをフォーム上に配置できる。編集コントロールを使うと,入力されたテキストを取り出すことができる。編集コントロールはテキストを表示することもできる。
テキストを表示するだけの場合,そのテキストを選択してクリップボードにコピーできるようにするには編集コントロールを使う。このような編集コントロールの機能が不要の場合は, Phi::Label オブジェクトを使ってテキストを表示すればよい。
super class
Phi::WinControl
properties
- auto_select : Boolean
-
focus を得たときにすべてのテキストを自動的に選択するかどうか
テキストが追加されるよりも置換される場合の方が多いと思われるときに true
を指定しよう。
- auto_size : Boolean
-
テキストに合わせて self の高さを自動的に変更するかどうか
auto_size
はクライアント領域の高さをテキストに合わせるように編集コントロールのサイズを調整するのに使う。
- false
-
編集コントロールの高さは固定である。
- true
-
フォントや境界線のスタイル変更のようにコントロールの高さに影響する変更が発生したときにコントロールのサイズが再調節される。
- 注意
-
auto_size
は編集コントロールの高さのみを調整する。 auto_size
が true
の場合でも,テキストの幅がコントロールよりも大きくなった場合はテキスト表示が切れてしまうことがある。
- border_style : Fixnum (BorderStyle)
-
クライアント領域の周囲に単一線の境界をもつかどうか
- BS_SINGLE
-
周囲に単一線の境界を持つ。
- BS_NONE
-
境界はない。
- can_undo : Boolean
-
取り消し可能な変更が編集コントロールに入っているかどうか
テキストに対して加えた変更内容が undo を呼び出すことによって取り消すことができるかどうかを判別できる。変更を加えるようなコマンドに相応するメニュー項目を有効にしたり無効にしたりするときに役立つ。
- char_case : Fixnum (CharCase)
-
テキストの大文字と小文字を決定する。
テキストを大文字または小文字に変換する。以下に char_case
の値を示す。
- EC_LOWER_CASE
-
テキストを小文字に変換する
- EC_NORMAL
-
テキストは大文字と小文字のどちらでもよい
- EC_UPPER_CASE
-
テキストを大文字に変換する
char_case
が EC_LOWER_CASE
または EC_UPPER_CASE
である場合,ユーザーが編集コントロールに入力する時点で文字の大文字と小文字が変換される。 char_case
を EC_LOWER_CASE
または EC_UPPER_CASE
に変更すると,テキストの表示だけでなく実際のデータも変更される。大文字と小文字を区別する情報は失われるため, char_case
を EC_NORMAL
に戻しても復旧はできない。
- hide_selection : Boolean
-
focus が他の control に移動したとき,テキストの範囲選択の描画をしないか否か
- false
-
self
が focus を持たない状態でもテキストが選択されたときと同じ長方形領域を描画したままにする。
- true
-
self
が focus を持っている場合にのみ選択された長方形領域を描画する。
hide_selection
は選択の実際の値には無関係で,その視覚的な表示にのみ影響する。常に hide_selection
を false
にしてしまうと編集コントロールの多いフォームが見づらくなることがある。
- max_length : Fixnum
-
ユーザーが編集コントロールに入力できる文字の最大長
max_length
は,編集コントロールに入力できる文字の長さをバイト単位で指定する。テキストが固定長バッファにコピーされることがありえる場合に, max_length
を使ってテキストの長さを制限するとよいだろう。
値を 0 に設定すると,動作環境に依存した値 ( 現在の Windows では 64 KB ) が使われる。
- 注意
-
lines
を直接扱うと, max_length
を超えるテキストを保持することができる。 max_length
を変更しても既に保持されているテキストの長さを変更することはできない。 max_length
よりテキストの長さが長い場合には,それ以上の文字の追加ができなくなる。
- modified : Boolean
-
ユーザーが編集コントロールのテキストを編集したかどうか
modified
は,編集コントロールの text が変更されたかどうかを調べる。 text をプログラムで直接変更する場合, modified
も true
に設定しなければならない。
- oemconvert : Boolean
-
編集コントロールに入力された文字を ANSI から OEM に変換して再び ANSI に戻すかどうか
編集コントロールに入力された文字が確実に OEM 文字セットに変更されるようにするには, oemconvert
を true
に設定する。これにより,すべての文字が入力時に ANSI から OEM に変換されてその後で ANSI に戻される。
テキストを OEM 文字列にマップする必要がない場合は oemconvert
を false
に設定すれば変換のオーバーヘッドを回避できる。
- password_char : Fixnum (Char)
-
入力された実際の文字の代わりに表示する文字
password_char
を 0 に設定すると,編集コントロールはテキストをそのまま表示する。 password_char
が 0 以外の場合は,編集コントロールは入力された文字の代わりに password_char
の文字を表示する。 password_char
は編集コントロールの表示のみに影響する。 text の値は入力された実際の文字を示す。
- read_only : Boolean
-
ユーザーが編集コントロールのテキストを変更できないか否か
編集コントロールを表示のみに制限するには read_only
を true
に設定する。編集コントロールでの編集を可能にするには read_only
を false
に設定する。
read_only
を true
に設定するとテキストの変更はできなくなるが,テキストの選択はできる。選択されたテキストをアプリケーションによって操作したり,クリップボードにコピーしたりすることができる。
- sel_length : Fixnum
-
選択されている文字の数
sel_length
は,選択されているテキストの長さをバイト数で調べる。 sel_length
を設定すると,選択の内容を sel_start から始まり, sel_length
の長さの文字列に変更できる。
- 注意
-
sel_length
の値を sel_start が示す文字からテキストの最後までの文字数よりも大きく設定すると sel_start からテキストの最後までのすべての文字が選択される。 sel_length
の値を利用できる文字数よりも大きく設定した後に sel_length
を参照すると,設定した値ではなく実際に選択されている文字の長さが返される。
- sel_start : Fixnum
-
テキスト選択の先頭文字の位置
sel_start
は,範囲選択されている文字列の開始位置を調べる。編集コントロールの先頭位置は 0 である。選択されているテキストがない場合, sel_start
はカーソル位置を示す。 sel_start
を設定すると現在の選択範囲はクリアされ,指定した文字の直前にカーソルを置くことができる。特定の範囲のテキストを選択するには,まず sel_start
を設定してカーソル位置を決め, sel_length を使って選択範囲を指定する。
- sel_text : String
-
編集コントロールのテキストの選択部分
sel_text
は現在選択されているテキストである。 sel_text
を設定すると選択したテキストを新しいテキストで置き換えることができる。範囲選択されていない編集コントロールに sel_text
を設定すると,カーソル位置に新しい文字列を挿入できる。
[ top ] [ prev ] [ up ] [ next ]