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

时间:2014-03-01 19:46:42

标签: delphi mobile dynamic firemonkey

我正在使用Delphi XE5制作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中包含的每个按钮,告诉我它是否已启用,它确实说它已启用。

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

造成这种情况的原因是什么?!

1 个答案:

答案 0 :(得分:0)

尝试添加TAG作为按钮的ID。然后当调用onClick方法处理它时:

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

并查看此帖子,了解有关如何添加动态组件的更多信息:https://stackoverflow.com/a/20837752/2728408