问题标签 [vcl-styles]
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.
delphi - How detect when a vcl style is changed?
I use several WinAPi functions which needs the Handle of the form in order to work, due which the handle of the form is recreated when the vcl styles is changed many of the calls to these functions stop working. So I need a way to detect when the current vcl style is modified (changed) in order to update the calls to these functions.The question is How detect when a vcl style is changed?
delphi - Delphi TTaskDialog 可以使用 VCLStyles 吗?
Delphi TTaskDialog 可以使用 VCLStyles 吗?
delphi - Delphi XE2,如何在更改 VCL 样式后保持表单在顶部
我在 XE2 中遇到了一个奇怪的问题:
我正在使用 HWND_TOPMOST 和 SetWindowPos 将我的表单设置在顶部,但是如果我在运行时切换 VCL 样式,则窗口不再是最顶部的,并且取消设置/重新设置它也不能修复它。
有任何解决这个问题的方法吗?
delphi - 不支持 vcl 样式的选项卡的关闭按钮
我已经使用了本示例中提供的代码How to implement a close button for a TTabsheet for a TPageControl to draw a close button to each tabsheet of a pagecontrol 我已经用代码中的样式服务替换了 ThemeServices 并且在应用样式时关闭按钮没有任何表现和反应。谁能指出我解决这个问题的不同途径。谢谢你!这是 OnDrawTab 事件的代码:
delphi - 对于在相邻显示器上显示其边框的最大化、样式化窗口,我能做些什么?
在多显示器系统上,“空白”VCL 应用程序可以很好地最大化,但是启用样式(并且选择了一个作为默认样式)的同一应用程序会错误地最大化。我看到的是窗口的右侧边缘延伸到第二台显示器(我的主要在左侧)。当我开始与其他 Windows 应用程序进行比较时,我注意到在 Windows 7 下(至少),最大化的窗口甚至在左侧、右侧或底部都没有非客户端边框。事实上,标准 VCL(非样式化)应用程序的行为方式相同,没有非客户端边界。
我该如何解决?我注意到 TFormStyleHook 有一个 WMNCCalcSize 处理程序,我还没有剖析它,但让我想知道 VCL 是否可能错误地处理最大化窗口的此消息。
delphi - 我如何为 TLinkLabel 申请 VCLStyle
我尝试将 VCLStyle 应用于 TLinkLabel。
可悲的是,我无法显示下划线(A 标签的句子)
我该如何解决这个问题?
解决这个问题,但是标签可能没有出现这个“样本”
delphi - 如何编写 TDBCtrlGrid VCL 样式自定义类?
这里有很多关于 XE2 VCL 样式和按钮、面板、编辑等以及 VCL 样式的自定义颜色的问题。尽管我希望现有的问题涵盖它,但它们并没有……所以 DB Control Grids 似乎是又一个特例。
在 DB Control Grid VCL 源中,它因此注册了一个样式挂钩:
TCustomStyleEngine.RegisterStyleHook( TDBCtrlGrid, TScrollingStyleHook);
但是,如果您想编写自己的 DB Control Grid VCL 风格的钩子,这不是您的后裔。如果这样做,您会将整个控件绘制成一个非常大的滚动条。
那么如何自定义主题数据库控制网格?当您完全禁用主题时,似乎仍然不允许自定义绘制活动行。所以我认为必须为此编写一个自定义子类并覆盖 Paint 方法,再加上编写一个 VCL 样式的钩子类。
似乎一个人可能主要应该只是使用常规所有者绘制事件 OnPaintPanel 进行自定义,并且添加该事件,如果你没有,修复我看到的最大的 VCL 样式故障,
TDBCtrlGrid
即它从未使用SelectedColor 并仅将所有内容绘制为纯灰色或其他任何基本颜色。如果有人能证实这一点,或者告诉我,将不胜感激。
delphi - XE2 中的 TDateTimePicker VCL 样式故障仅在 Windows 经典主题上发生
我想这是 VCL 样式还没有准备好被真正使用的另一个原因。
没有 VCL 样式的 TDateTimePicker 控件看起来很好。打开任何 vcl 样式,我得到这样的外观:
我可以通过注册一个样式挂钩来关闭这个组件类型的 vcl 样式,但这看起来真的很难看。
这是在安装了更新 4 的 Delphi XE2 上。
理想情况下,我希望有一种解决方法,或者日期时间选择器的某些属性,或者我可以强制日期时间选择器正确绘制和主题的日期时间选择器的某些子类。
请注意,正常的组合框主题正确。请注意,这很容易在可以想象的最小示例项目中重现。是的。这是又一个样式错误。
更新它可能是特定于平台的,与不带 Aero 的 Windows Server 2008 R2 上的 Windows 通用控件版本相关(Windows 服务器组件术语中的“桌面体验”)。在其他人无法复制它之后,我才想到要在几台不同的 Windows 机器上尝试。在我这样做之后,我发现该问题仅在 Windows Server 2008 R2 上重现。我们的一些客户使用 Windows Server 2008 R2。如您所知,使用 VCL 样式的一个主要原因是,无论 Windows 主题是什么,它都能让您的应用看起来一样。但是在上述情况下,整个应用程序主题正确,除了 DateTimePicker 控件,它的主题不正确,并且仅在 Windows Server 2008 R2 上。相同的基于 XE2 的演示应用程序在 Windows 7 上运行良好。
工作系统和非工作系统在 SysWow64 文件夹中都有一个 ComCtl32.dll,版本为 5.82.7601.17514。但是,当 VCL 主题关闭时,这些控件的本机布局和外观显然是不同的,这会影响蒙皮代码,从而导致失败。
更新 2 :报告为错误:QC 条目106783
delphi - 在菜单最后一项的右侧移动
德尔福 Xe2U4。主菜单项:文件、选项、帮助(名称:HelpMenuItem)。2 个按钮。使用 StyleManager Xe2(在项目选项中启用 xe2 主题,默认设置为“Metro Blue”)。
为什么在使用主题时不起作用?是否有正常的方法来向右移动菜单的最后一个点,是否应用了依赖方案?