.tag は何に使う?
2008.02.18 Monday | by HopeSeeds Inc.(合資会社ホープシーズ)
Delphiのコンポーネントのほとんどについている。 tag プロパティだが、これ、何に使ってます?
tagプロパティは、Integer型だ。
たぶん、一般的に、ボタンなら、
procedure TForm1.Button1Click(Sender: TObject);
begin
case Tbutton(sender).tag of
1:ShowMessage('1 Push!');
2:ShowMessage('2 Push!');
3:ShowMessage('3 Push!');
end;
end;
複数のボタンを全て同じイベントに持って行って、tag番号として、振る舞いを振り分ける。
しかし、tagは、使わなければ、ただのもったいない箱だ。
Delphi7のヘルプには、こう書いてある。
「Tag は,定義済みの意味を持たない Integer プロパティです。Tag プロパティは,開発者の手間を省くために提供されます。追加の整数値の格納に使ったり,コンポーネント参照またはポインタなどの値に型キャストすることもできます。」
意味を持たない・・とさ、でも、もったいないと思う私は、下の様なことにも使っている。
//最初の振る舞いを見分ける。ボタン押下のカウントなど
procedure TForm1.Button1Click(Sender: TObject);
begin
if Button1.tag =0 then
begin
ShowMessage('はじめまして');
end;
Button1.tag := Button1.tag +1;
end;
正直、告白すると、変数として使っちゃったりしている。
(他の人にソースを見せない場合だけど)
他にも、
ShowHint をFalse にした時のHintプロパティを文字列変数に、
逆に、Hintを空にしておいて、ShowHint をBool型の変数に、
TLabel の TransparentをTrue にした時の Colorプロパティ
短い固定のキャプションの時の WordWrapプロパティをBool型の変数に、
などなど・・。やりすぎると、ソースが見えにくくなる。
tagプロパティは、Integer型だ。
たぶん、一般的に、ボタンなら、
procedure TForm1.Button1Click(Sender: TObject);
begin
case Tbutton(sender).tag of
1:ShowMessage('1 Push!');
2:ShowMessage('2 Push!');
3:ShowMessage('3 Push!');
end;
end;
複数のボタンを全て同じイベントに持って行って、tag番号として、振る舞いを振り分ける。
しかし、tagは、使わなければ、ただのもったいない箱だ。
Delphi7のヘルプには、こう書いてある。
「Tag は,定義済みの意味を持たない Integer プロパティです。Tag プロパティは,開発者の手間を省くために提供されます。追加の整数値の格納に使ったり,コンポーネント参照またはポインタなどの値に型キャストすることもできます。」
意味を持たない・・とさ、でも、もったいないと思う私は、下の様なことにも使っている。
//最初の振る舞いを見分ける。ボタン押下のカウントなど
procedure TForm1.Button1Click(Sender: TObject);
begin
if Button1.tag =0 then
begin
ShowMessage('はじめまして');
end;
Button1.tag := Button1.tag +1;
end;
正直、告白すると、変数として使っちゃったりしている。
(他の人にソースを見せない場合だけど)
他にも、
ShowHint をFalse にした時のHintプロパティを文字列変数に、
逆に、Hintを空にしておいて、ShowHint をBool型の変数に、
TLabel の TransparentをTrue にした時の Colorプロパティ
短い固定のキャプションの時の WordWrapプロパティをBool型の変数に、
などなど・・。やりすぎると、ソースが見えにくくなる。
