标签: component-design

避免调用ProcessMessages的需要

我有一个我创建的组件,它在TWinControl中嵌入了一个硬件加速的渲染器,因此您可以将它放在一个表单上.它在大多数情况下工作得很好,但如果我尝试调整控件的大小,一切都会变为空白,直到消息循环运行并调用渲染器的WndProc,渲染器托管在外部DLL中.这意味着我需要在代码中调整控件的大小后显式调用Application.ProcessMessages,我知道这被认为是不好的做法.

有没有办法在控件本身放置一些逻辑,以便在我更改控件的大小时调用DLL中的WndProc,所以我不需要调用ProcessMessages来获取正确的东西?

delphi controls component-design

7
推荐指数
1
解决办法
684
查看次数

为什么我的控件不接受键盘输入?

我已经构建了一个自定义控件,我正在尝试将输入发送到.它将接受鼠标输入并正确报告MouseDown,MouseMove和MouseUp,但无论出于何种原因,它都不接受键盘输入.当我点击它时,它没有得到焦点,我按下的任何键都被任何具有焦点的控件解释.

这可能非常简单.我想看的第一个地方是在ControlStyle属性中,但我在帮助文件中看到的关于键盘输入的唯一内容是csNoStdEvents禁用它,而我的控件没有.那么我需要做些什么才能让我的控件能够获得输入焦点?

delphi focus custom-controls component-design

5
推荐指数
2
解决办法
2288
查看次数

如何制作不能包含其他控件的控件?

我正在设计一个自定义控件,每次我在表单设计器中突出显示它,然后从控件选项板中选择另一个控件,新的控件最终在我的控件内,就像它是TPanel或TGroupBox一样.这不是我想要的,所以我怎么能阻止它发生?

delphi component-design

4
推荐指数
1
解决办法
161
查看次数