问题标签 [vcl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
235 浏览

delphi - 表格没有更新

在我的应用程序中(主要形式是 TTntForm,C++Builder 2006):

这个问题的原因可能是什么?

编辑: 谢谢大家的回答。我发现了这个错误。项目文件中有两次表单创建:

0 投票
8 回答
4439 浏览

delphi - delphi7中的皮肤

我希望对我的应用程序进行剥皮,并注意到似乎没有明显的方法可以做到这一点。

我习惯于为 java 蒙皮文件,并想知道是否有任何方法可以改变“标准”delphi7 应用程序的外观。

编辑:(标签)

0 投票
6 回答
8712 浏览

delphi - How to add mouse wheel support to a component descended from TGraphicControl?

I have created a delphi component which descends from TGraphicControl. Is it possible to add support for mouse wheels?

--- Edit ---

I've exposed the MouseWheel events as shown below but they aren't called.

--- Edit ---

As suggested below, I've tried to trap the WM_MOUSEWHEEL and CM_MOUSEWHEEL messages, but it doesn't seem to work. However I've managed to trap the CM_MOUSEENTER message. I don't understand why i can trap one type of message, but not the other.

0 投票
6 回答
6425 浏览

delphi - 为什么某些 Delphi 组件需要“AOwner: TComponent”来构造它们?

要求 TComponent 作为所有者来实例化某种对象似乎完全无关紧要。为什么有这么多 Delphi 组件需要这个?

例如,TXMLDocument 需要一个 TComponent 对象来实例化。

为什么会这样,如果有充分的理由,我应该在那里使用什么来“做正确的事”?

0 投票
8 回答
7265 浏览

multithreading - Delphi表单创建不冻结主线程

我在想做的事情上遇到麻烦。我有一些需要一些时间来创建的大表格。为了使应用程序加载更快,我想让表单在主表单的 OnCreate 事件中创建的线程中创建。该线程有一个 TApplication 类型的 FApplication 字段,这显然是 Application 变量。我用它在线程上创建表单,但即使我尝试过

表格仍未创建。有什么解决方法吗?

提前致谢。

0 投票
1 回答
2218 浏览

windows-vista - 为什么我的带有右锚定控件的 Borland C++Builder 5 表单在 Vista 上显示不正确?

我花了很长时间寻找解决方案并现在找到了它,我认为这对于 Stack Overflow 来说是很好的记录。所以我的回答将在这个问题之后紧随其后。

我使用的是 Borland C++ Builder 5。这可能也适用于 Delphi 的等效版本。我在 TPanel 上有一个带有 TButton 的表单。按钮设置为 akRight,akBottom。在 XP 和以前的 Windows 上,一切都很好。在 Vista 上,使用 Aero 时,按钮出现在右侧太远 4 个像素。锚定继续正常工作。

另一个例子是一个 TComboBox 的表单,它有 akTop、akRight、akLeft。该组合在 Vista 上显得太宽了 4 个像素。

回到 Vista 上的“经典”外观使一切看起来都正确。

0 投票
3 回答
5842 浏览

delphi - 如何改变 TDBNavigator 组件的行为?

我想将标准 DBNavigator 栏上的插入按钮的行为从数据集插入更改为追加。

我可以在 BeforeAction 事件中捕获按钮单击,执行附加等;然后在 OnClick 事件中中止原始插入,但这似乎有点 hack。有更好的想法吗?我正在使用 D6(500,000 公里的时钟,并且仍然很强劲......)。

感谢您的任何建议

问候,

菲尔W。

0 投票
2 回答
1860 浏览

delphi - 何时调用 TGraphicControl.Paint?

我正在尝试编写一个自定义的 TGraphicControl 后代,它允许用户在 VCL 表单上嵌入SDL渲染表面。这将提供一种在表单中显示 SDL 动画的简单方法。

显然,使用 Paint 方法重绘了 TGraphicControl。这多久被调用一次?是仅在发生某些事情使控件无效时,还是有其他事情调用它?它如何与自己绘制的东西相互作用?

0 投票
2 回答
1130 浏览

delphi - 为什么不应该在组件创建或流式传输期间使用句柄?

我想制作一个通过 SDL_CreateWindowFrom 函数包装 SDL 渲染表面的自定义 VCL 控件。SDL_CreateWindowFrom 采用现有的 HWND 句柄并将高性能渲染上下文(它有多个可用的后端,包括 DirectX 和 OpenGL)放到它上面。

帮助文件显示“不要在组件创建或流式传输期间引用 Handle 属性。” 但它没有说明原因。它表示当您第一次尝试访问 Handle 属性时,它将调用 HandleNeeded 以确保存在有效的句柄。

所以我有两个问题。1:在组件创建过程中不应该引用Handle属性的原因是什么?2. 如果控件的全部目的是包装需要初始化 HWND 的渲染表面,那么何时可以安全地执行(理想情况下)应该在创建/流式传输期间进行的初始化?

0 投票
1 回答
2022 浏览

c++builder - 如何在 Borland C++ 中禁用主窗体的关闭