TEdit/ja: what changed
Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.
Title: TEdit/ja
| Old | New | Line | |
|---|---|---|---|
| 1 | + | **TEdit** は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).* |
