Tagプロパティーの使い方

解決


tama  2004-02-09 23:20:55  No: 7004

コントロールのTagプロパティーは
「開発者の便宜を図るために用意されています」
とhelpにあるのですが、使った経験がありません。
なにか便利な使い方があったら教えて下さい。


にしの  2004-02-09 23:32:24  No: 7005

まあ、必要に応じて使うモノなので、使わないときは全く使いませんね。
私の場合、例えば、Button1, Button2があって、Button1.OnClickの処理が長いとき、Button2にキャンセル機能をつけたいときなどに使ったりします。

procedure TForm1.Button1Click(Sender: TObject);
begin
  Button1.Tag := 0;
  while true do
  begin
    //処理が長い
    Application.ProcessMessage;
    if Button1.Tag <> 0 then Break;
  end;
  if Button1.Tag <> 0 then
    ShowMessage('Cancel')
  else
    ShowMessage('Complete');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Button1.Tag := 1;
end;


LupinⅢ  URL  2004-02-09 23:43:56  No: 7006

私の場合はイベント処理を一つで複数のコンポーネントの処理を分ける時に使用します。
Buttonを二つ用意して

Button1.Tag := 0;
Button2.Tag := 1;
Button1.OnClick = Button1Click
Button2.OnClick = Button1Click

procedure TForm1.Button1Click(Sender: TObject);
begin
   case TButton(Sender).Tag of
       0://ここに振り分け処理を記述
       1:
   end;
end;


通りすがり  2004-02-09 23:52:15  No: 7007

私の場合は社員情報等の検索で使いました。
procedure TForm1.Edit1Exit(Sender: TObject);
begin
  Edit1.Tag := StrToIntDef(Edit1.Text,0);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if Edit1.Tag>0 then begin
    Employee := GetEmplyeeInfo(Edit1.Tag);
    ...
  end else
    ShowMessage('ちゃんと社員番号入れてヨッ!!');
end;


tama  2004-02-10 19:01:12  No: 7008

>にしのさん、LupinⅢさん、通りすがりさん 
貴重なideaの開示をありがとうございました。


tama  2004-02-10 19:02:01  No: 7009

チェック忘れました;


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加