Delphi 最近动态创建的按钮不可点击

Delphi 最近动态创建的按钮不可点击,delphi,mobile,dynamic,firemonkey,Delphi,Mobile,Dynamic,Firemonkey,我正在用DelphiXe5制作一个Firemonkey移动应用程序,它有一个包含10个按钮的垂直滚动框。文本由用户添加,一旦所有按钮都有一些文本,将使用以下代码为其他文本创建一个新按钮: NewButton := TButton.Create(Self); with NewButton do begin Parent := pnlWaiting; Height := 40; Width := 160; Position.X := 2

我正在用DelphiXe5制作一个Firemonkey移动应用程序,它有一个包含10个按钮的垂直滚动框。文本由用户添加,一旦所有按钮都有一些文本,将使用以下代码为其他文本创建一个新按钮:

NewButton := TButton.Create(Self);
    with NewButton do
    begin
      Parent := pnlWaiting;
      Height := 40;
      Width := 160;
      Position.X := 20;
      Position.Y := WaitingButtonY;
      TextAlign := TTextAlign(1);
      OnClick := WaitingButtonsClick;
      Text := edtPlayerName.Text;
      Enabled := True;
      Visible := True;
      Name := 'Waiting' + IntToStr(loop);
    end;
    WaitingButtons.AddObject(NewButton.Name, NewButton);
按钮创建得很好,并显示在垂直滚动框中,但是完全不可点击。我添加了一个循环来遍历WaitingButtons TStringList中包含的每个按钮,告诉我它是否被启用,它确实说它被启用了

一旦我添加了另一个按钮,使用与上面完全相同的代码,上一个按钮会突然被点击,但新按钮不会


这是什么原因

尝试添加一个标记作为按钮的ID。然后,当调用onClick方法时,按如下方式处理它:

procedure TForm1.WaitingButtonsClick(Sender: TObject);
var
id:Integer;
begin
  id := TButton(Sender).tag;
end;

有关如何添加动态组件的更多信息,请查看此帖子:

刷新PNL等待面板可能会有所帮助。。。只是想一想,很可能是猴子体内的某个bug ^ ^ ^当你点击按钮时,
WaitingButtonsClick()
是否会被调用?