【发布时间】:2022-01-18 21:01:08
【问题描述】:
我的表单上有一个 TButton,并且我有一个程序,当单击此按钮时会执行 ShowMessage。简单的。问题是我完全“删除”了这个程序,然后按原样完美地重写了它。问题是按钮不再起作用,没有任何反应。如果我偶然单击 2x,它将引导我手动编写的程序,然后它可以工作。我想知道为什么?
(注意:我在另一个delphi fmx项目中粘贴了360按钮的360代码过程,我不想仅仅为了识别过程而点击360按钮)
谢谢。
【问题讨论】:
-
重写程序后,您是否记得将它们重新链接到按钮
OnClick事件?为什么你有这么多按钮?这对 UI 资源不利,更不用说对 UI 设计有利了。拥有这么多单独的程序也不利于代码设计/维护。所有的程序对不同的按钮做同样的事情吗?您不能使用更少的过程(即 1)利用Sender参数来检测正在单击的按钮吗? -
存在大量按钮是因为它们是为俱乐部销售代币的系统的一部分,其中我有 - 和 + cd product = tag 按钮的按钮。在没有注册产品的情况下,它们是 Visible = False。所有的 - 按钮都做同样的事情,+ 按钮也做同样的事情。他们调用一个程序来执行触发一件商品或从总销售额中减去一件商品的动作。我一直在寻找某种方法来自动自动执行“重读按钮及其程序”。显然它不存在。
-
我知道这是我的研究不足,但我怎么能使用按下按钮的发送者并在函数中使用它的文本、标签和其他参数呢? Delphi FMX 10.4,我的应用是Android。
-
在这种情况下,
Sender指向被点击的TButton。因此,只需将Sender类型转换为TButton,然后根据需要使用其属性,例如:procedure TMyForm.ButtonClick(Sender: TObject); begin ShowMessage(TButton(Sender).Text); end;然后您可以将该过程分配给所有按钮的OnClick事件。 -
对我来说听起来像是使用
TFrame的好例子!
标签: delphi firemonkey