Caption と Name プロパティ

Caption と Name プロパティについてですが、Caption は、その名の通り「表題」「タイトル」という意味です。コンポーネントをフォームに貼り付けた時に表示されるものは「Caption」です。 一方 Name プロパティは、そのコンポーネント自身の「名前」です。沢山のコンポーネントを使う場合に、そのコンポーネントの役割を Name プロパティに設定することで、どのコンポーネントが何の役割を持っているか等を識別しやすくなります。それでは、まず、 フォームにボタンを貼り付けて下さい。次にオブジェクトインスペクタで「Nameプロパティ」を「ChangeButton」と変えます。そして、その貼り付けたボタンをダブルクリックします。

procedure TForm1.ChangeButtonClick(Sender: TObject);
begin

end;

今まで、Button1 と表示されていたものが変わりました。「Nameプロパティ」の利点は、「何をする Button なのか」を決めることが出来ることにあります。少なくともここでは、「何かを変える( Change ) するボタンだということが理解できます」つまり、プログラムの可読性が上がることになります。沢山のコンポーネントを使いプログラミングをしていくと、プログラムを読みやすくすることは、大変重要になってきます。 さらに、すごいことに一度設定した Name プロパティを再び変更を加えても、ちゃんとエディタでの表示も自動的に変更されます。ここで、ボタンの Name プロパティを ChaneButton から、ColorButton に変えてください。 すると、

procedure TForm1.ColorButtonClick(Sender: TObject);
begin

end;

このように、自動的に Delphi が変更をしてくれます。ただし自動的に変更されるのは、Delphi が自動生成したものだけです。つまり、プログラマがコードの中で Name プロパティをタイプした箇所は変更されませんので注意してください。

それでは、ここで簡単なサンプルを見てみましょう。以下の図のようにコンポーネントを配置してください。

次に、ボタンの Caption プロパティを変更します。

デフォルトでは、Button1, Button2... となっていますが、今回は、Name プロパティを変更していますので、TForm1.ColorButtonClick のような名前で表示されています。しかし、Caption プロパティを見れば、どの Caption と Name プロパティが対になっているのかを理解できると思います。それぞれボタンの Name プロパティを、そのボタンの Caption プロパティを見ながら、適切に設定し、以下のようにプログラムを書いてみてください。

procedure TForm1.ColorButtonClick(Sender: TObject);
begin
  Color := clGreen;
end;

procedure TForm1.ShowNameButtonClick(Sender: TObject);
var
  i: Integer;
begin
  Memo1.Clear;
  for i := 0 to ComponentCount-1 do
  begin
    Memo1.Lines.Add(Components[i].Name);
  end;
end;

procedure TForm1.BeepButtonClick(Sender: TObject);
begin
  Beep;
end;

それぞれどのボタンが、どのようなことをする目的をもったボタンなのかを 単に Button1, Button2 とするよりは理解しやすくなったと思います。

Name プロパティをデフォルトの状態から変更した場合、そのコンポーネントがボタンなのか、ラベルなのかがわからなくなってしまう場合があります。 そんなときは、、そのコンポーネントの種類がが分かるだけの最小限の文字だけを先頭(末尾)につけて識別する方法があります。上の例で行きますと、Button は btn, Memo は mem などを先頭(末尾)につけます。

procedure TForm1.btnColorClick(Sender: TObject);

procedure TForm1.btnShowNameClick(Sender: TObject);

procedure TForm1.btnBeepClick(Sender: TObject);

これらを先頭につけた場合、オブジェクトツリーでも識別しやすくなります。

ただ、これは規則ではありませんので、必ずしもやらなければならないというわけではないです。


up next
Last update 2002/9/24