複数のコンポーネントにイベントの動的割り当てをするには??

解決


モリ  2008-01-26 09:03:15  No: 29509

生成された複数のボタンをクリックしたとき、
TestButton[i].Caption:=IntToStr(i)
をTestButton[i]のOnClickのイベントとして割り当てたいのですが、どうすればいいでしょうか?
こちらがソースになります。

for i:=1 to 100 do
begin
  TestButton[i]:=TButton.Create(Self);
  TestButton[i].Parent:=Form1;
  TestButton[i].Caption:=IntToStr(i)←TestButton[i]がクリックされたときのイベントに割り当てたい
end;

どうか、教えていただけないでしょうかm_ _m
宜しくお願いします。


KHE00221  2008-01-26 09:25:34  No: 29510

こんな感じかな?

type
  TForm2 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private 宣言 }
  public
    procedure ButtonClick(Sender: TObject);
  end;

var
  Form2: TForm2;
  Buttons : array[0..99] of TButton;

implementation

{$R *.dfm}

procedure TForm2.ButtonClick(Sender: TObject);
var
    Button : TButton;
begin
    Button := TButton(Sender);
    Button.Caption := IntToStr(Button.Tag);
end;

procedure TForm2.Button1Click(Sender: TObject);
var
    I,W,H : Integer;

begin
    W := 40;
    H := 20;
    for I:=0 to 99 do
    begin
      Buttons[I] := TButton.Create(Self);
      Buttons[I].Parent := Form2;
      Buttons[I].Tag := I;
      Buttons[I].Width := W;
      Buttons[I].Height := H;
      Buttons[I].Left := (I mod 10) * W;
      Buttons[I].Top  := (I div 10) * H;
      Buttons[I].OnClick := ButtonClick;
    end;
end;


モリ  2008-01-26 09:40:35  No: 29511

>>KHE00221様
お早いお返事ありがとうございます。
見事に解決いたしました^^
ご丁寧にソースまで張って頂き重ねて感謝しますm_ _m


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

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






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