TLabel/ja: what changed
Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.
Title: TLabel/ja
| Old | New | Line | |
|---|---|---|---|
| 1 | + | **TLabel** は1、あるいは複数行のテキストアイテムを他のコンポーネントに作るコンポーネントである。TLabelは[[TGraphicControl|TGraphicControlより]]派生し、[[Component Palette/ja|コンポーネントパレットの]][[Standard tab/ja|Standardタブより]]利用できる。 | |
| 2 | + | ||
| 3 | + | ## 使い方 | |
| 4 | + | ||
| 5 | + | TLabelは[[TForm|formsで]]用いることのできるもっとも基本的なコンポーネントの1つである。ほとんどのラベルは、例えば、[[TEdit|Edit fields]]、[[TMemo|Memos]]、[[TStringGrid|StringGridsなどといった]]他のコンポーネントのマーキングである。TLabelは様々な利用可能なイベントをもたらすが、ほとんどの場合必要とされない。 | |
| 6 | + | ||
| 7 | + | StandardコンポーネントのTLabel(テキストシンボルAbc)をクリックすることにより、フォームにラベルを加えることができ、フォーム上にクリックして配置することができる。 | |
| 8 | + | ||
| 9 | + | フォームに新しく挿入された、デフォルトラベル*Label*を変更するために、以下のように進めることができる: | |
| 10 | + | ||
| 11 | + | - フォーム上で1度クリックし、TLabelを選択する。 | |
| 12 | + | - オブジェクトインスペクタタブのプロパティに移動する。 | |
| 13 | + | - プロパティ、**Caption**を選択し、隣の編集フィールドで変更する。 | |
| 14 | + | - 同様にしてプロパティ、**Name**を選択し、よりよい名前に変更する。 | |
| 15 | + | ||
| 16 | + | ## 実行時にキャプションを変更する | |
| 17 | + | ||
| 18 | + | もちろん、実行中にキャプション(表示されるテキスト)を変えることができる。 | |
| 19 | + | ||
| 20 | + | 以下の例はこれを示している: | |
| 21 | + | ||
| 22 | + | - 新しい[[Form Tutorial/ja|GUIアプリケーションフォーム]]、*Form1*を作る。このフォームにStandardコンポーネントタブでふさわしいコンポーネント、[[TButton/ja|TButton]]、 *Button1*と[[TLabel/ja|TLabel]]、*Label1*を選択し、*Form1*上でクリックする(ラベルはボタンの上にあるはずである)。 | |
| 23 | + | - *Button1*上で単にダブルクリックすることで、*Button1*に対する[[Event order|イベントハンドラを]]作る。 | |
| 24 | + | - *Button1*のOnClickイベントハンドラのコードに以下の行を挿入する: | |
| 25 | + | ||
| 26 | + | ``` pascal | |
| 27 | + | procedure TForm1.Button1Click(Sender: TObject); | |
| 28 | + | const Cnt: Integer = 0; //何回ボタンがクリックされたか決めるカウンタ | |
| 29 | + | begin | |
| 30 | + | inc(Cnt); //カウンタを1インクリメント | |
| 31 | + | Label1.Caption:='Button was clicked ' + //Label1のキャプションにテキストをを書き込む | |
| 32 | + | IntToStr(Cnt) + ' times'; | |
| 33 | + | end; | |
| 34 | + | ``` | |
| 35 | + | ||
| 36 | + | - プログラムを起動しボタンをクリックすることでラベルが変わることを試そう。 | |
| 37 | + | ||
| 38 | + | ## 右揃えしたラベルのDelphiとの非互換性 | |
| 39 | + | ||
| 40 | + | - Delphiでは Alignment=taRightJustify で自動的にサイズ変更されるが、Anchors=\[akLeft,...\]は左向きに伸びる。LCLでは、Lazarus 2.3.0からそれらは右向きに伸びる。 | |
| 41 | + | - 理由: LCLでは大きな伸長なしに不可視のラベルに対してもまた、その振る舞いを実装することが不可能であった。LCLは同様の効果をもたらすコーントロールに基づく異なる、より一般的な特徴を持たせてある(以下の救済策を見ること)。そのため、この機能を移殖して、LCLコードをいたずらに複雑かつ、バグの元とにする、必要も要求もないとした。 | |
| 42 | + | - 救済策: 第2のコントロールにLCLアンカリングを使う。ラベルの右側を他のコントロールにアンカーさせる。そうすると自動サイズ化されたラベルが左に伸長するが、手本となるコントロールなしに、親が、単純なakRightアンカーを終えたようにリサイズされるとき、右には移動しない。 | |
| 43 | + | ||
| 44 | + | ## コメント | |
| 45 | + | ||
| 46 | + | 複数行のテキストを表すため、行の折り返しの目印として、ふさわしい場所に*[[End of Line|LineEnding]]*を配置することができる。 | |
| 47 | + | ||
| 48 | + | 例: | |
| 49 | + | ||
| 50 | + | ``` pascal | |
| 51 | + | Label1.Caption := 'This' + LineEnding + 'is' + LineEnding + 'a' + LineEnding + 'multiline' + LineEnding + 'text'; | |
| 52 | + | ``` | |
| 53 | + | ||
| 54 | + | ## 以下も参照のこと | |
| 55 | + | ||
| 56 | + | - [[doc:/lcl/stdctrls/tlabel.html|TLabel doc]] | |
| 57 | + | - [[TStaticText]] | |
| 58 | + | ||
| 59 | + | --- | |
| 60 | + | *From the Free Pascal wiki, page "TLabel/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).* |
