TLabel/ja
From Free Pascal wiki
Jump to navigationJump to search
│
Deutsch (de) │
English (en) │
suomi (fi) │
français (fr) │
日本語 (ja) │
русский (ru) │
TLabel は1、あるいは複数行のテキストアイテムを他のコンポーネントに作るコンポーネントである。TLabelはTGraphicControlより派生し、コンポーネントパレットのStandardタブより利用できる。
使い方
TLabelはformsで用いることのできるもっとも基本的なコンポーネントの1つである。ほとんどのラベルは、例えば、Edit fields、Memos、StringGridsなどといった他のコンポーネントのマーキングである。TLabelは様々な利用可能なイベントをもたらすが、ほとんどの場合必要とされない。
StandardコンポーネントのTLabel(テキストシンボルAbc)をクリックすることにより、フォームにラベルを加えることができ、フォーム上にクリックして配置することができる。
フォームに新しく挿入された、デフォルトラベルLabelを変更するために、以下のように進めることができる:
- フォーム上で1度クリックし、TLabelを選択する。
- オブジェクトインスペクタタブのプロパティに移動する。
- プロパティ、Captionを選択し、隣の編集フィールドで変更する。
- 同様にしてプロパティ、Nameを選択し、よりよい名前に変更する。
実行時にキャプションを変更する
もちろん、実行中にキャプション(表示されるテキスト)を変えることができる。
以下の例はこれを示している:
- 新しいGUIアプリケーションフォーム、Form1を作る。このフォームにStandardコンポーネントタブでふさわしいコンポーネント、TButton、 Button1とTLabel、Label1を選択し、Form1上でクリックする(ラベルはボタンの上にあるはずである)。
- Button1上で単にダブルクリックすることで、Button1に対するイベントハンドラを作る。
- Button1のOnClickイベントハンドラのコードに以下の行を挿入する:
procedure TForm1.Button1Click(Sender: TObject);
const Cnt: Integer = 0; //何回ボタンがクリックされたか決めるカウンタ
begin
inc(Cnt); //カウンタを1インクリメント
Label1.Caption:='Button was clicked ' + //Label1のキャプションにテキストをを書き込む
IntToStr(Cnt) + ' times';
end;
- プログラムを起動しボタンをクリックすることでラベルが変わることを試そう。
右揃えしたラベルのDelphiとの非互換性
- Delphiでは Alignment=taRightJustify で自動的にサイズ変更されるが、Anchors=[akLeft,...]は左向きに伸びる。LCLでは、Lazarus 2.3.0からそれらは右向きに伸びる。
- 理由: LCLでは大きな伸長なしに不可視のラベルに対してもまた、その振る舞いを実装することが不可能であった。LCLは同様の効果をもたらすコーントロールに基づく異なる、より一般的な特徴を持たせてある(以下の救済策を見ること)。そのため、この機能を移殖して、LCLコードをいたずらに複雑かつ、バグの元とにする、必要も要求もないとした。
- 救済策: 第2のコントロールにLCLアンカリングを使う。ラベルの右側を他のコントロールにアンカーさせる。そうすると自動サイズ化されたラベルが左に伸長するが、手本となるコントロールなしに、親が、単純なakRightアンカーを終えたようにリサイズされるとき、右には移動しない。
コメント
複数行のテキストを表すため、行の折り返しの目印として、ふさわしい場所にLineEndingを配置することができる。
例:
Label1.Caption := 'This' + LineEnding + 'is' + LineEnding + 'a' + LineEnding + 'multiline' + LineEnding + 'text';
以下も参照のこと