vcl相关内容

在全屏表单后面的屏幕截图会导致黑屏

我要捕获桌面的图像,该图像在捕获时会忽略我的表单。我喜欢this answer,但一直无法捕获桌面内容,只有黑屏。 因此,我需要帮助来尝试解决此问题。 以下是我的版本,稍有更改: private { Private declarations } DesktopBMP: TBitmap; procedure WMEraseBkgnd( var Message ..
发布时间:2022-04-06 22:54:21 其他开发

自定义组件和标签顺序

我有一个自定义组件(继承自 TCustomPanel),它由两个其他组件(假设是两个编辑)组成.使用组件时如何正确获取 Tab 键顺序? 在标签顺序设计器中,我只能访问无法获得焦点的组件本身,因为它是一个面板.在运行时发生的情况是,我可以使用 tab 键访问编辑,但只有在组件下方的两个按钮获得焦点之后. 在这种情况下如何更改 Tab 键顺序? 解决方案 组件中嵌套控件的 Tab ..
发布时间:2022-01-21 11:22:38 其他开发

Delphi/C++Builder 的标签编辑器组件

我需要一个用于 Delphi 或 C++Builder 的 VCL 标签编辑器组件,类似于 JavaScript 可用的组件:例如这个,或 这个 或者 StackOverflow 自己的标签编辑器. 有没有类似的东西,还是我需要从头开始制作? 我需要的一些具体的东西是: 如果标签的数量超过编辑器的宽度,编辑器应该允许滚动或变成多行.如果是多行,应该有一个选项来定义一些最大高度,但 ..
发布时间:2022-01-21 10:36:36 其他开发

如何使悬停在最小化、最大化和关闭按钮上的行为?

在 Delphi 应用程序中,当您将鼠标悬停在边框图标上时,例如: 最小化 最大化 恢复 它的行为不正确: 与运行正常的应用程序进行比较: 复制步骤 点击文件、新建、VCL Forms Application - Delphi 点击运行 (F9) 将鼠标悬停在“最小化"、“最大化"或“关闭"按钮上. 如何解决? Windows 10,64 位(在台 ..
发布时间:2022-01-15 14:52:35 其他开发

如何模拟按下按钮?

我想测试一些表格.有没有办法模拟按下确定(或取消)按钮,以便按下按钮并触发与其关联的事件处理程序? 解决方案 最干净的方法是调用按钮的Click方法.由于以下原因,这比替代方案更好: 您可以读取 OnClick 属性,检查它是否为 nil,然后调用该方法.但这似乎毫无意义,因为 Click 方法已经做到了这一点.复制这段代码没有意义. 您可以直接调用事件处理程序,但这需要您的代码了 ..
发布时间:2022-01-15 12:15:43 其他开发

丑陋的“残疾人"TMainMenu 的图像

Delphi 2010,Win32 VCL.我需要为我的应用程序创建一个具有最标准外观的主菜单.TMainMenu 在所有 Windows 版本中看起来都不错,唯一不好的是当它为 Enabled=False 的项目显示图像时. Delphi 有一些奇怪的方法来构建禁用的图像(带斜角的黑白挤压,对我来说它看起来像喷溅).我想在 VCL 源代码中为该过程打一个补丁,并让菜单从同一个 TImage ..
发布时间:2022-01-06 14:46:31 其他开发

Delphi 非可视化 TTree 实现

我正在寻找一种非可视化持久树 (TStringTree) 实现.如果有人知道它有什么好的实现,请告诉我. 谢谢. 解决方案 您会在 DI 容器 库(商业).然而,正如上面其他人所指出的,推出自己的产品真的很容易,只添加您需要的功能. 您可以只使用两个基本对象:TNode 和 TNodeList(例如 TObjectList 后代).至少,TNode 只需要三个成员:您的字符串数 ..
发布时间:2022-01-05 18:46:29 其他开发

ShortCut 什么时候触发?

昨天我发现了一种情况,即键盘快捷键没有按预期触发. 具体情况是:我在 MDI 子项上按下了 ActionList 的一个 Action 的 ShortCut 组合键,而 MDI 表单上的侧边栏被聚焦. 我一直认为 ShortCuts 可以在全球范围内使用.他们究竟在哪些情况下会开火或不会开火? 解决方案 这是一个看似简单的问题,但答案却出奇的长.首先,我将处理一些基础知识,然后 ..
发布时间:2021-12-14 00:07:22 其他开发

在 Delphi 2009 应用程序中隐藏主窗体

以下代码在 Delphi 7 中工作正常.但是,在 Delphi 2009 中,表单确实保持隐藏状态,但任务栏上的按钮现在出现了. ShowWindow(Handle, SW_HIDE);SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) 或 WS_EX_TOOLWINDOW );ShowWindow(句柄, ..
发布时间:2021-12-14 00:06:00 其他开发

Delphi windows 7 控制面板组件

我正在寻找一个在您“按类别查看"时外观和功能类似于 Windows 7 控制面板按钮的 delphi 组件.有人知道这样的东西是否已经存在? 解决方案 我刚刚创建了一个看起来像您想要的小组件.它是双缓冲的,因此完全没有闪烁,并且在启用和禁用视觉主题的情况下都可以使用. 单元任务按钮;界面用途SysUtils、表单、消息、Windows、图形、类、控件、UxTheme、图像列表、PNG图像 ..
发布时间:2021-12-13 23:58:56 其他开发

如何从 VCL 重新编译特定单元?

我想将 QC 的修复应用到 Delphi 2009 单元(发生时为 DBClient).我知道我需要将单元复制到另一个目录并对副本进行更改.然后我如何让 Delphi 编译该单元并使用它来支持已经存在的 DCU? 解决方案 如果你不想修改原来的 .Pas 文件,我把 .Pas 文件复制到我的应用程序文件夹中,然后选择构建的项目,它将在我的应用程序文件夹中创建新的 dcu 文件,该文件将用于 ..
发布时间:2021-12-13 23:45:58 其他开发

SysUtils 和 System.SysUtils 中的 DecimalSeparator

我需要在 Delphi XE6 中找到 DecimalSeparator var SysUtils Delphi 7,我试图在 System.SysUtils 中找到,但没有成功.谁能告诉我在Delphi XE6中哪里可以找到她? 在 Delphi 7 中,它位于 SysUtils.pas 单元的第 618 行: var货币字符串:字符串;货币格式:字节;NegCurrFormat:字节; ..
发布时间:2021-12-13 23:25:48 其他开发

如何分离面板并将其显示在单独的窗口中?

假设我有一个包含面板(其中包含许多其他控件)的表单 A 和一个空的表单 B. 我可以以编程方式将面板从表单 A 上分离并将其移动到表单 B 中(也可能返回表单 A)吗? 我知道我可以更改面板的所有者,但它可以在不同的表单之间使用吗? 更新: 经过一番谷歌搜索后,我看到有一个 ParentWindow 属性. 解决方案 通过真正将 TForm 用于您将使用面板的目的,您可以轻 ..
发布时间:2021-12-13 23:15:49 其他开发

在运行时按需更改组件类

我的问题类似于这里的想法:替换 delphi 中的组件类. 但我需要根据需要更改特定组件类. 这是一些伪演示代码: unit Unit1;TForm1 = 类(TForm)ImageList1:TImageList;ImageList2:TImageList;私人的ImageList3:TImageList;结尾;程序 TForm1.FormCreate(Sender: TObject);开 ..
发布时间:2021-12-13 23:11:05 其他开发

Delphi XE2:可以在 VCL 应用程序中实例化 FireMonkey 表单吗?

在 Delphi XE2 之前,我们只有 VCL 来创建 GUI 应用程序.Delphi XE2 声明: 注意:FireMonkey (FMX) 和可视化组件库 (VCL) 是不兼容,不能在同一个项目中使用或应用.也就是说,一个应用程序必须是唯一的一个或其他,FireMonkey 或 VCL.不兼容是由FireMonkey (FMX) 和 VCL 之间的框架差异. 我的应用程序是一个使 ..
发布时间:2021-12-13 23:10:00 其他开发

加载 Jpg/Gif/Bitmap 并转换为 Bitmap

我必须从 XML 文件加载图像.XML 文件中没有关于图像是否为 JPG/GIF/BMP 的信息.加载图像后,我需要将其转换为位图. 有没有人知道如何在不知道实际文件格式的情况下将图像转换为位图?我使用的是 Delphi 2007/2009 谢谢. 解决方案 我找到了一个更简单的方法!它甚至无需知道/检查文件格式即可自动加载 JPG/GIF/BMP 等文件,并相应地进行转换.它 ..
发布时间:2021-12-13 23:00:44 其他开发

Delphi 在应用程序运行时更改主窗体

我有这个问题.当我隐藏我的主窗体时,我的应用程序的任务栏图标也被隐藏了.我也看到了一个关于这个问题的新问题,但答案并没有真正帮助.他们建议最小化它,但我不想最小化应用程序. 是否可以在应用程序已经运行时更改主窗体? 例如.我有两种形式.当我想隐藏一个表单并显示另一个表单时,那么任务栏图标应该停留在任务栏并且主表单应该切换到另一个表单. 我使用的是 Delphi XE6,它是一个 ..
发布时间:2021-12-07 08:55:05 其他开发

如何抑制“此应用程序中仍有活动的 COM 对象"关闭应用程序时出错?

我编写了一些 ATL COM 对象,用于在我的 C++ Builder 应用程序中进行拖放操作. 由于我无法控制的原因,当用户尝试关闭我的应用程序时,它仍然具有活动的 COM 对象.这是因为使用我的对象的其他 COM 客户端似乎缓存了我的 COM 对象并且不释放它们 - 因此,当用户单击“X"关闭我的程序时,我的 COM 对象的引用计数仍然大于零.这会导致用户收到如下不友好的消息: 我 ..
发布时间:2021-11-30 14:11:09 C/C++开发