TEdit/ja: what changed
Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.
| Old | New | Line | |
|---|---|---|---|
| 1 | 1 | **TEdit** は1行編集のコントロールである。[[Component Palette/ja|コンポーネントパレットの]][[Standard tab/ja|Standardタブにある]]。 | |
| 2 | 2 | ||
| 3 | 3 | ## 使い方 | |
| 4 | 4 | ||
| 5 | 5 | TEditはコンポーネントパレットの[[Standard tab/ja|StandardタブにあるTEditアイコンをクリックし]]、フォーム[[TForm|form]]上で1回クリックすることで加えることができる。これで、実行時にこの1行テキストフィールドを編集できる。 | |
| 6 | 6 | ||
| 7 | 7 | もし、このテキストを別の場所で使いたいときは、他の[[String|Stringのように]]用いることができる。 | |
| 8 | 8 | ||
| 9 | 9 | 例えば、もしTEdit *Edit1*をフォームに加えると、`myString := Edit1.Text;`を用いることができる。 | |
| 10 | 10 | ||
| 11 | 11 | もし、アプリケーションの起動時TEdit *Edit1*の中のデフォルトテキスト(例えば、*Edit1*)をほかのものを表示するようにしたいなら、以下のように進めることができる: | |
| 12 | 12 | ||
| 13 | 13 | - フォーム上のTEditをクリックによって選択する。 | |
| 14 | 14 | - オブジェクトインスペクタのプロパティタブに移動する。 | |
| 15 | 15 | - プロパティ**Text**を選択し、隣の入力フィールドを変更する。 | |
| 16 | 16 | - 同様にして、プロパティ**Name**を選択し、TEditをましな名前にする。 | |
| 17 | 17 | ||
| 18 | 18 | ### パスワード入力 | |
| 19 | 19 | ||
| 20 | 20 | TEditを簡単にパスワードを入力に用いることができる。このようにして、実際に入力した[[Char|Charに]]代わり、パスワード文字を表示させる。 | |
| 21 | 21 | ||
| 22 | 22 | 簡単な例: | |
| 23 | 23 | ||
| 24 | 24 | - 新しいTEdit TEdit *Edit1*を持つGUIアプリケーションを作り、TButton *Button1*をフォームに置く。 | |
| 25 | 25 | - オブジェクトインスペクタで*Edit1*のパスワード文字プロパティを、1つのアスタリスク( * )にする。 | |
| 26 | 26 | - *Button1*の*OnClick*イベントハンドラは入力されたパスワードを: `ShowMessage(Edit1.Text);`と示す。 | |
| 27 | 27 | ||
| 28 | 28 | ### テキストヒント | |
| 29 | 29 | ||
| 30 | 30 | 例えば、検索語を入力できる検索ボックスに入力したことはあるだろうか。そして使われてないときは、検索語ボックスはそれが何のためにあるか知らせるために「検索」のようなものを表示しているのを見たことはあるだろうか。そう、TEditはこの目的のためにTextHintと呼ばれるプロパティを持っている。TextHintは通常の「Text」が空でコントロールが使用されていない場合は、「検索」メッセージが表示される。たいていの部品ではTextHintはユーザーがタイプを始めると自動的にそこから消える。この例外はGTK2/3で、コントロールがフォーカスを得ると直ちに、中身を消し去る。 | |
| 31 | 31 | ||
| 32 | 32 | TextHintからのテキストは通常のテキストより、幾分灰色がかっており、そのためユーザーは何か特別なものと気づく。大方の人はこのインタフェースを直感的に理解する。 | |
| 33 | 33 | ||
| 34 | 34 | ## 要望事項 | |
| 35 | 35 | ||
| 36 | 36 | ### TEditの埋め込まれたボタン/他のコントロール | |
| 37 | 37 | ||
| 38 | 38 | あらゆる種類のコントロールをTEditに埋め込むことができるのはWinAPIの特性である。 | |
| 39 | 39 | ||
| 40 | 40 | 考慮事項 | |
| 41 | 41 | ||
| 42 | 42 | - この特性はすべての部品で本来サポートされていない。例えば、GtkEntryがコンテナに由来しないのでGtk2/Gtk3では不可能である。SpinEditコントロールはGtk2の中で特別なクラスである(これは[[TSpinEdit|TSpinEditがそれ]]自身のWSクラスを持つ主たる理由である)。 | |
| 43 | 43 | ||
| 44 | 44 | - 埋め込まれたコントロールの配置に左、あるいは上方プロパティを設定することはできない(これは通常発生する)。そのかわり、「整列(Align)」プロパティを使うべきである。 | |
| 45 | 45 | ||
| 46 | 46 | ```delphi | |
| 47 | 47 | button1.Parent:=edit1; | |
| 48 | 48 | button1.Width:=20; | |
| 49 | 49 | button1.Align:=alRight; | |
| 50 | 50 | button1.Constraints.MaxHeight:=18; //edit1.Height; | |
| 51 | 51 | ``` | |
| 52 | 52 | ||
| 53 | 53 | - 「Text」エントリフィールドはTEditプログラムによって制限される:もしくは部品によって自動的に行われるべきである | |
| 54 | 54 | ||
| 55 | 55 | このような制限ないと、入力されたテキストはボタンの「下側」に行ってしまう。 | |
| 56 | 56 | ||
| 57 | - | ||
| 58 | - | ||
| 59 | - | ||
| 60 | - | ||
| 57 | + |  | |
| 61 | 58 | ||
| 62 | 59 | もし純粋なWinAPIを用いると、これは EM_SETMARGINS メッセージを使用することで行われる: | |
| 63 | 60 | ||
| 64 | 61 | ```delphi | |
| 65 | 62 | Uses | |
| 66 | 63 | Windows, ... | |
| 67 | 64 | ||
| 68 | 65 | ... | |
| 69 | 66 | ||
| 70 | 67 | SendMessage(Edit1.Handle, EM_SETMARGINS, EC_LEFTMARGIN or EC_RIGHTMARGIN, MakeLParam(0, button1.Width)) | |
| 71 | 68 | ``` | |
| 72 | 69 | ||
| 73 | - | ||
| 74 | - | ||
| 75 | - | ||
| 76 | - | ||
| 70 | + |  | |
| 77 | 71 | ||
| 78 | 72 | DelphiVCLはMarginsプロパティを提供するが、これは EM_SETMARGINS にはマップされず、VCLで異なる意味を持つ。 | |
| 79 | 73 | ||
| 80 | 74 | ## 以下も参照のこと | |
| 81 | 75 | ||
| 82 | 76 | - [[doc:lcl/stdctrls/tedit.html|TEdit doc]] | |
| 83 | 77 | - [[TMemo]] - 複数行のテキスト編集ボックス | |
| 84 | 78 | - [[TLabeledEdit]] - TEditにラベルがついた編集フィールド | |
| 85 | 79 | - [[TMaskEdit]] - マスクのついた編集フィールド | |
| 86 | 80 | - [[TSpinEdit]] - 長さが制限された整数のための編集フィールド | |
| 87 | 81 | - [[TFloatSpinEdit]] - 長さが制限された浮動小数点タイルのための編集フィールド | |
| 88 | 82 | - [[TEditButton]] - [[TSpeedBtn|TSpeedBtnをボタンとして]]持つTEditにような編集フィールド | |
| 89 | 83 | - [[TFileNameEdit]] - ファイル名を入力するために[[TOpenDialog|TOpenDialogがつけられた]]編集フィールド | |
| 90 | 84 | - [[TDirectoryEdit]] - ファイルパスを入力するために[[TSelectDirectoryDialog|TSelectDirectoryDialogがつけられた]]編集フィールド | |
| 91 | 85 | - [[TDateEdit]] - 日付を入力するために[[TCalendarDialog]](カレンダー)につけられた編集フィールド | |
| 92 | 86 | - [[TCalcEdit]] - 数字を入力するために[[TCalculatorDialog]] (電卓)につけられた入力フィールド | |
| 93 | 87 | - [[TTIEdit]] - RTTI可能な入力フィールド | |
| 94 | 88 | ||
| 95 | 89 | --- | |
| 96 | 90 | *From the Free Pascal wiki, page "TEdit/ja", as it stood on 2024-03-20 after a change by Ariben, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).* |
