【问题标题】:invoke manually button click event in c++ builder在 C++ 构建器中手动调用按钮单击事件
【发布时间】:2015-08-25 05:47:54
【问题描述】:

使用 c++ builder borland (bcb6)。

我希望手动调用按钮单击事件。我做到了:

FMap->bbDoneInClick(NULL);

虽然Done 按钮位于FMap 表单上,但出现了问题。

我是否需要使用不同的参数而不是 NULL 来调用 bbDoneInClick

【问题讨论】:

  • 我会用force 更改invoke ...调用意味着别的东西
  • "出了点问题" - 你需要比这更具体。到底出了什么问题?有错误吗?例外?意外行为? bbDoneInClick() 实际上是做什么的?在任何情况下,TButton 都有一个公共的Click() 方法,如果分配了一个OnClick 事件处理程序,则该方法会触发该方法。您应该直接调用它而不是 OnClick 处理程序:FMap->bbDoneIn->Click();(假设按钮名为 bbDoneIn,否则替换为正确的名称)。

标签: events button invoke c++builder-6


【解决方案1】:

使用Form1bbDone 本身而不是NULL ...

  • 这取决于事件代码本身如何使用Sender 参数
  • 此外,只有在表单已创建时,您才能安全地调用事件处理程序
  • 如果它不访问 Canvas,即使在 TForm1::TForm1 构造函数中也可以使用它
  • 如果需要,请注意不要在OnShowOnActivate 之前使用它
  • 避免 VCL 问题或应用程序崩溃
  • 对于常见的处理程序,使用主窗口就足够了......(我使用this 而不是NULL
  • 如果您有多个组件的单个偶数处理程序,则偶数通常根据 Sender 参数决定操作或目标,因此在这种情况下,您需要将指针传递给组件本身

【讨论】:

    猜你喜欢
    • 2017-05-31
    • 1970-01-01
    • 1970-01-01
    • 2014-06-28
    • 2011-05-01
    • 1970-01-01
    • 2016-03-20
    • 1970-01-01
    • 2012-03-10
    相关资源
    最近更新 更多