问题标签 [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.

0 投票
1 回答
2582 浏览

delphi - 动态创建组件时如何强制执行 VCL 样式覆盖?

在 Delphi XE2 中,我成功地为我创建的自定义组件类创建了 VCL 样式的覆盖。但我发现,这些样式似乎在控件的运行时创建期间不适用。

具体来说,我已经扩展了 TPanel 并正在用动态创建的面板填充 TScrollBox,将每个面板设置为特定的颜色。我还使用 API 在创建过程中暂停对 ScrollBox 的重绘。

加载完成后,我将 TPanel 设置为 clWindow(视觉上),但是当我将 TPanel 拖放到另一个位置/控制我在代码中设置的颜色时“开始”。所以有些东西不允许/允许这些颜色应用......或者面板根本不刷新。

因此,我不太确定是否需要在动态组件创建时使用 VCL 样式覆盖调用“刷新”,或者是否在 TScrollBox 上暂停重绘会干扰创建时面板上未更新的颜色。因为它是挂起的 ScrollBox 的子级。

我想知道是否只有一个简单且已知的“陷阱”我忽略了我正在尝试做的事情。

我已经将项目简化为基本要素,但仍然存在问题。

这是 TPanel 添加标签的简单扩展。

这是应该显示问题的简单项目。按钮 1 将 TInfluencePanel 的五个实例加载到 ScrollBox1 中。它们以默认的窗口颜色和无样式而不是代码中的颜色出现。Button2 将控件移动到 ScrollBox2,它们以编码颜色出现。这已经删除了所有暂停的重绘,等等。

0 投票
1 回答
647 浏览

delphi - JvgPageControl Delphi + Vcl Styles Enabled问题上的左对齐选项卡

在 Windows 默认外观上,标签页标题以水平显示(从左到右1),启用 VCL 样式后,它们以垂直显示(从下到上 [2])。我如何在 Delphi XE5 上解决这个问题?详细信息:我正在使用 JEDI-VCL 3.58 中的 JvgPageControl 组件。

我想创建一个类似的 DisplayFusion 欢迎屏幕界面 [3]。欢迎提出建议!

图片:

在此处输入图像描述

提前致谢!

0 投票
1 回答
949 浏览

inno-setup - 选择设置语言对话框

我想使用 vcl-styles 或 isskin 设计我的 inno-setup 安装程序。我都试过了,看起来很棒。唯一的问题是,不幸的是,在执行 InitializeSetup 事件之前显示了选择设置语言对话框(皮肤在哪里加载)。

所以目前不可能将样式应用于该对话框。假设没有办法设置活动语言(据我所知,如果有我将创建自定义选择语言表单)我没有看到任何解决方案。我非常喜欢设置设置样式的能力,所以现在寻找任何可能的解决方法。除了分叉 issrc 并根据我的需要重建它之外,是否有人有任何想法?

0 投票
1 回答
1930 浏览

delphi - 如何在 Inno Setup 中将 VCL 样式应用于基于 DLL 的表单?

我正在使用 Inno Setup (Unicode) 和一组我在 Delphi XE2 中编写的 DLL。DLL 具有在安装向导/进度期间显示的 VCL 形式。

我已经尝试在我的 Inno Setup 安装程序中实现 VCL 样式。一切都很好,除了在这些 DLL 中创建的表单。有些表格是蒙皮的,但不是全部...

局部皮肤

如您所见,表单的背景颜色、列表视图背景颜色和字体颜色都发生了变化。但是,列表视图标题、进度条和表单边框仍然是旧样式。

如何使这些 DLL 中的表单显示正确的样式?

0 投票
1 回答
1151 浏览

delphi - Delphi XE5:如果字段为数字且应用程序没有默认样式,则 DBEdit 背景颜色不起作用

我无法DBEdit在运行时更改背景颜色。如果DbEdit styleElements启用([seFont,seClient,seBorder]DBEditName.Color:=clRed(例如)根本不工作。相反,如果styleElements=[] DBEditName.Color:=clRed更改边框(见下图)。但我想要一个完整的背景颜色。我怎样才能做到这一点?DBEdit

编辑

当 DBEdit 数据源字段为 NUMERIC(内容右对齐)并且应用程序应用了非默认样式(无 Windows 样式)时,就会出现问题

在此处输入图像描述

0 投票
1 回答
2439 浏览

delphi - FastReport 4 和 VCL 样式错误

一些背景资料。我在一家非常小的公司工作,该公司最近将 Delphi 从版本 6 (!!!) 升级到 Rad Studio XE5,并且在 10 多年中情况确实发生了很大变化。大多数事情似乎在 IDE 和框架中都得到了改进,但是我们在使用新的 VCL 样式功能时遇到了很大的问题。它只是非常有缺陷,无法达到我们过去从 Borland 获得的质量。我们已经做了很多调整和变通以使事情正常进行,但是目前一个问题确实困扰着我,它与 FastReport 4 中的预览表单有关。

  1. 工具栏周围有一个白色边框。
  2. 打印对话框中的控件和其他控件未对齐或位置错误

我们真的很想使用 VCL Styles 让我们的软件焕然一新,所以我们希望有解决这些问题的方法。

重现问题的步骤:

  1. 创建一个新的 VCL 表单应用程序
  2. 在 Project > Options > Application > Appearance 中检查 VCL Style,例如 Sapphire Kamri。
  3. 向表单添加 TfrxReport 报告组件
  4. 双击组件 frxReport1 并添加一个 Page Header band 只是为了有一些内容
  5. 添加一个 TButton 并在 OnClick 事件中调用 frxReport1.ShowReport();
  6. 运行程序并单击按钮。在预览表单中,您现在看到工具栏被一个看起来很奇怪的白色边框包围。
  7. 点击最左边的打印按钮,弹出打印对话框,您可以看到分组框和取消按钮是如何定位在客户区之外的。

您有解决问题的任何解决方案或建议吗?

在此处输入图像描述

编辑:RRUZ 给出了一个很好的答案,但是他对问题 #1 的解决方案有一些副作用,所以我决定简化代码并手动在工具栏周围绘制边框。像这样:

0 投票
0 回答
209 浏览

windows-8 - Windows 8 标准 VCL 风格/主题

我目前正在使用 Rad Studio XE5,我想根据标准 Windows 8 样式(不是现代 UI)创建自己的样式。我正在使用 Rad Studio 中称为位图样式设计器的内置设计器。但是,我似乎无法为 Windows 主题找到 vsf 文件。有谁知道我在哪里可以找到这个,或者它是否存在?谢谢。

0 投票
1 回答
138 浏览

c# - 在 AvalonDock 中停靠自定义 VCLStyle Delphi-XE2 应用程序

我有一个带有 Avalondock 的 C# 应用程序。在这个应用程序中,我可以停靠“第三方”应用程序,如记事本和 Windows 计算器。在这个停靠栏中,应用程序窗口显示时没有标题栏,正如我想要的那样。

我还有一个我想停靠的 Delphi XE2 应用程序。这是正确的,标题栏被删除并且主菜单正在工作。直到我将同一个应用程序与自定义 VCL 样式对接。在这种情况下,我的标题栏仍然显示在 Dock 中,并且主菜单不再起作用。我可以通过将borderstyle设置为bsNone来解决标题栏问题。

当我在 formcreate、formshow 或 formactivate 期间的编译或运行时应用自定义样式时,会出现此问题。当我通过单击按钮应用样式运行时时,主菜单继续工作,但我的窗口未停靠,我有一个空的停靠栏和前面的应用程序。

有谁知道如何解决这个问题?

蒂斯

0 投票
1 回答
514 浏览

delphi - 如何使用 VCL 样式设置 StringTree 的背景颜色?

我正在尝试更改 VCL 样式的虚拟字符串树的颜色。当列和行未填充整个组件区域时,这会影响单元格外部(右侧和底部)的树部分。

对于样式,此颜色由表示scTreeView并将通过

不幸的是,更改样式scTreeView会导致更改我的应用程序中所有 TreeViews 的背景颜色(不仅是 Virtual StringTrees)。

但我只想更改 StringTrees 的颜色。

如果没有样式,您可以单独为每个 StringTree 设置 Color 属性。我不确定scTreeView为 VCL 样式实现的行为是否错误,是否应该修复。但它与无样式的 StringTree 的行为不同。

问题:如何为我的 StringTrees 修复此背景颜色?(全部,不一定单独)

我应该创建一个 StyleHook 吗?我需要实现哪些方法?是否可以覆盖或插入特定的类?

0 投票
1 回答
302 浏览

delphi - VCL风格mac外观风格设计师

最近我一直在对 VCL 样式(德尔福的 Embarcadero XE2)进行一些研究。我可以加载和设置样式,以便正常工作。

目前我正在探索 VCL 样式设计器,我试图弄清楚如何在应用程序文本(表单的标题) 在右边。

我已经走到了尽头,希望有人能给我一些指示。

所以基本上我试图“模仿”的是 Windows 窗体上的 Mac 外观。

欢迎任何帮助。