汎用的な関数をつくるには?

解決


山中  2008-07-21 22:24:59  No: 31333

初めまして、山中と申します。
プログラム歴が浅いので、こういう状況をなんと言って良いのかわからないのですが、

フォームに配置したButton1をクリックしたときのイベントは、
procedure TForm1.Button1Click(Sender: TObject);
と記述されますが、これを汎用的に使いたい、と言いますか。
Button2を押してもButton3を押しても、すべてまとめて「[Button]を押したときの動作」として記述したいのです。
こういう動作を専門用語で何かあると思うのですが、分らないためネットでの検索も上手くいきません。


igy  2008-07-21 22:32:32  No: 31334

コンポーネントのプロパティやTextの変更について
https://www.petitmonte.com/bbs/answers?question_id=4231

>igy 2006/09/19(火) 13:10:53 

で挙げたように、
コード上で指定するか、オブジェクトインスペクタで指定するのは、どうでしょう?


山中  2008-07-21 23:33:49  No: 31335

igyさん、素早い回答ありがとうございます。望んでいた結果です!
コード上で指定してみました。
このような、同じ動作を割り当てるというか、汎用的な部分を作るのってなんて言うんでしょうね。

ありがとうございました!


KHE00221  2008-07-21 23:40:49  No: 31336

趣旨とはすこし違うけど
こんなやりかたもあるよ?

  TButton = class(StdCtrls.TButton)
  public
    procedure Click;override;
  end;

procedure TButton.Click;
begin
    inherited Click;

    //Button毎の処理
    case StrToInt(Copy(TButton(Self).Name,7,Length(TButton(Self).Name)-6)) of
      1:;
      2:;
      3:;
    end;

end;


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

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






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