title: Phi::Memo
author: YOSHIDA Kazuhiro
mailto: moriq@moriq.com

1. Phi::Memo

Phi::Memo は Windows 複数行編集コントロールのラッパーである。

Phi::Memo を使うと，標準的な Windows 複数行編集コントロールをフォーム上に配置できる。複数行編集ボックスを使えば， 2 行以上のテキスト入力を扱える。複数行編集コントロールは，長い情報の表示に適している。

1.1. super class

Phi::Edit#

1.1. properties

: alignment : Fixnum
  self のテキストを揃える方法を指定する。 constants#Alignment を参照してください。

: caret_pos : Point
  メモのクライアント領域内のキャレット位置を示す。

  %c:caret_pos% は，カーソルの座標を決定する。 %c:caret_pos% は，メモのクライアント原点を基準にして X 座標と Y 座標 ( 行および文字単位 ) を示す。 X/Y で示される位置ではなく，テキストの文字列のみに基づいてキャレット位置を決めるには， Phi::Edit#sel_start を使う。

: lines : Phi::Strings
  self のテキスト

  %c:lines% は， self のテキストを行単位で操作できる。 %c:lines% は Phi::Strings# オブジェクトなので， Phi::Strings# のメソッドを使って行のカウント・新しい行の追加・行の削除・新しいテキストによる行置換といった操作を行うことができる。

  すべてのテキストを一度に扱うには， #text を使う。テキストを 1 行ずつ扱う場合は， %c:lines% の方が便利だ。

: scroll_bars : Fixnum (ScrollStyle)
  self がスクロールバーを持つかどうか

  : ssNone
    スクロールバーなし
  : ssHorizontal
    下端にスクロールバーを 1 つ付ける
  : ssVertical
    右端にスクロールバーを 1 つ付ける
  : ssBoth
    下端と右端の両方にスクロールバーを付ける

: want_returns : Boolean
  ユーザーがテキストに改行文字を挿入できるかどうか

  : true
    ユーザーがテキストに改行文字を入力できる。
  : false
    フォームで改行文字を扱う。

  例えば，デフォルトボタン ( [OK] ボタンなど ) とメモコントロールが配置されているフォームがあるとしよう。
  : false
    [Enter] を押すとデフォルトボタンが選択される。
  : true
    [Enter] を押すとテキストに改行文字が挿入される。

  : 注意
    %c:want_returns% が %c:false% の場合でも， [Ctrl] + [Enter] を押せばテキストに改行文字を挿入できる。

: want_tabs : Boolean
  ユーザーがテキストにタブを挿入できるかどうか

  : true
    ユーザーがテキストにタブを挿入できる。
  : false
    [Tab] を押すことでフォームの次のコントロールを選択できる。

  : 注意
    %c:want_tabs% が %c:true% の場合，ユーザーは [Tab] を使って編集コントロールに入ることはできるが，コントロールから出ることはできない。

: word_wrap : Boolean
  テキストが右マージンで折り返すようにソフトウェア的な改行を挿入するかどうか
  : true
    編集コントロールのテキストを右マージンで折り返してクライアント領域に収まるようにする。テキストの折り返しは外観のみであり，明示的に [Enter] が押された場合とは異なり，テキストに改行文字が挿入されるわけではない。
  : false
    編集コントロールは明示的に [Enter] が入力された場合にのみ改行文字を挿入する。

  : 注意
    %c:word_wrap% が %c:true% の場合，水平スクロールバーは使えない。
