Sign in Join
Wiki copytemporary

TEdit/ja: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: TEdit/ja

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

Back to history