FireMonkey自定义控制点击事件在设计师中发射
Firemonkey custom control click events firing in designer
我有一个具有多个子组件的自定义firemonkey控件。这些子组件具有与它们在控件构造函数中设置的相关事件。我注意到,当我在设计视图中单击自定义控件时,这些子组件的on Click事件就会被触发。
我需要采用特定的设置或最佳实践来防止这种情况发生吗?
我可以在我的C 代码中检查一些东西,以查看此事件是否在运行时与设计人员的相关性进行?类似:
void __fastcall MyControlOnClick( TObject * Sender )
{
if( InDesigner == false )
{
//do stuff here
}
}
使用ComponentState
属性。当您的控件在表单设计器中使用时,它具有csDesigning
标志。
void __fastcall MyControl::SubControlClick(TObject *Sender)
{
if( !ComponentState.Contains(csDesigning) )
{
//do stuff here
}
}
另外,根本不在设计时间内分配OnClick
处理程序以:
__fastcall MyControl::MyControl(TComponent *Owner)
: TBaseControl(Owner)
{
...
FSubControl = new TWhatever(this);
if( !ComponentState.Contains(csDesigning) )
FSubControl->OnClick = &SubControlClick;
...
}
相关文章:
- 如果目标对象死亡,Qt::BlockingQueuedConnection发射会发生什么
- Yaml-cpp:在发射器中的每个新映射之前禁用自动开始文档 (---)
- 使用433Mhz发射器实时发送PWM值
- 向有射程的敌人发射子弹
- 编译器发射std :: move()运行时调用
- QT-悬停Qlabel时发射信号
- QThread信号发射不连接
- QT设计师标签的菜单图标
- QTimer超时信号在每个超时事件中多次发射
- 当我尝试发射对象代码时,为什么llvm segfault在segfault
- QT:使用Qeventloop等待信号,如果信号发射得太早该怎么办
- 如何为QT快速设计师模拟C 枚举
- FireMonkey自定义控制点击事件在设计师中发射
- 无法从Qt C++捕获发射到QML的信号
- Qt时隙方法(这是另一类)在发射信号时不触发
- QT条件信号发射效率
- QT下降事件不发射
- QT 5:从非QT线程发射信号
- 复合属性对象,当所有子对象都更改时,它禁止多个信号发射
- 呼叫函数直接与发射信号(QT-信号和插槽)