问题标签 [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 投票
2 回答
274 浏览

delphi - Delphi XE6 样式菜单和 madExcept 问题

我遇到了 Delphi VCL Styles 的一个非常奇怪的行为。启用 VCL 样式后,当 madExcept 激活“缓冲区溢出时立即崩溃”选项时,菜单将变为非样式。

关闭此选项,或将其切换为“在缓冲区 UNDERrun 时立即崩溃”可修复菜单问题。

问题是:有没有其他人遇到过这个问题?为什么会发生以及如何解决?

0 投票
2 回答
2028 浏览

delphi - 来自 DLL 的 VCL 样式正在影响应用程序中的 TMenuItem

我正在使用 Delphi XE6 和 VCL 样式。我有主要的应用程序和 dll。我的主应用程序启用了运行时主题,我正在使用 vcl 样式文件。我对我的 DLL 做了非常相似的事情。我启用了运行时主题并在使用和资源文件下添加了 VCL.Themes、VCL.Styles,其中包含 VCL 样式文件。加载 DLL 时,我从资源中加载 VCL 样式并将其设置为 DLL gui。主应用程序和 DLL 不是使用运行时包构建的。

现在我有自己风格的主应用程序 GUI 和自己风格的 DLL gui。这似乎工作正常,直到......

当我单击主应用程序中的按钮时,哪个事件会打开 TPopupMenu,它的样式与 DLL GUI 相同,而不是主应用程序样式。如果我浏览菜单,我也会得到 AV 并且程序崩溃。看一下附加的图像。

我究竟做错了什么?我目前看到的唯一解决方法是制作我自己的自定义 TPopupMenu 从其他一些控件派生。在此处输入图像描述


正如我所承诺的,我准备了与我的应用程序类似的简单演示程序。它由具有自己样式的宿主应用程序和添加到资源的样式的 DLL 组成。运行它并单击按钮 Popup 然后尝试从弹出窗口中选择一些东西。它会在某些 StdWindowProc 或类似的东西中崩溃并停止。此外,如果您在尝试从该菜单中选择某些内容时转到窗口系统菜单(左上角),您会注意到系统菜单的样式为 DLL gui 并且也会崩溃。rar 文件链接:dropbox.com/sh/f2jmbsmw18akpyg/AAA6SWdBmVhf6n6K-mvYLLmua?dl=0

在此处输入图像描述

谢谢你的帮助。

0 投票
3 回答
1409 浏览

inno-setup - Inno Setup 的 VCL 样式在为某些下载器页面元素蒙皮时遇到问题

我使用 VCL Styles for Inno Setup 试图对我的安装程序进行皮肤测试,但遇到了一个小问题,希望有人能提供帮助。

我需要提前道歉。我一直在纠结这些东西,在这里和那里截取一些东西,让它以我想要的方式在我的安装程序中工作,而且在编程方面绝不是一个大师。事实上,它让我偏头痛,但我必须以某种方式完成它。简而言之,我的编码无论如何都不是专家,但我努力把事情做好。

我一直在使用我在 2008 年某个时候制作的安装程序。就在最近,我想添加它,让它更自动地做事,有越来越少的有见地的提示,并且看起来更好。

当我第一次制作时,我添加了 Sherlock Software 的 InnoTools 下载器,并且从那以后一直使用它,真的没有问题。

我刚刚添加了 VCL 样式,并且 InnoTools 下载器中有一个元素,我完全不知道如何与安装程序的其余部分一起进行皮肤。其他一切看起来都很棒,但是下载页面内的小框是灰色的。

在此处输入图像描述

所以,我尝试了 Mitrich Software 的 Inno Download Plugin。嘿,灰色的盒子不见了,但是很糟糕。错误窗口的文本在白色背景上是浅灰色的,无法读取。

在此处输入图像描述

我做了更多的搜索,发现了 How to apply VCL styles to DLL-based forms。当我尝试使用 Sherlock Software 加载 InnoTools Downloader 时:

我刚刚收到错误:未知类型'WideString'

我正在使用 ANSI 版本的 Inno Setup,因为当我多年前最初尝试 Unicode 版本时,它弄乱了 InnoTools 下载器,从那时起我一直在使用 ANSI。

我尝试将 WideString 更改为 String,以匹配 VCL 已经使用的格式:

但是,不幸的是,这在运行安装程序时给了我一个错误:

1) 我想知道我是否因为两个下载器都使用外部 .dll 而不想让这部分蒙皮?2) 有没有办法让 VCL 为页面上的元素设置皮肤?3) 可以以与链接页面(和原始 VCL .dll 文件)类似的方式加载任何一个 .dll 文件吗?4) 使用 Inno Setup 的 Unicode 版本会给我解决这个问题的任何其他方法吗(只要我不必在我的原始安装程序上重写一大堆代码)?

非常抱歉,我现在真的不太了解与新页面有关的任何事情。我对安装程序所做的大部分工作都使用 MsgBox 来避免在有新更新和其他可能需要用户输入的通知的情况下处理它们。

如果有帮助,我会整理从我的一个安装程序中获取的示例代码,如果需要,可以发布。对于任何真正的程序员来说,这可能是一团糟,甚至不想让每个人都头疼(或厌恶地摇头),但只要让我知道它是否有帮助或者我已经放了什么这里足以解释我遇到了什么。

如果我设法获得 10 名声望,如果有帮助,我也可以发布示例图片。

我总是可以忍受它,但真的很想解决这个问题,如果有任何不清楚的地方,我提前道歉,因为这是我的第一个问题。

提前感谢您的任何帮助和见解。

从 ispack-5.5.5.exe / InnoTools Downloader 0.3.5 / Inno Download Plugin 1.4.0 安装的 Inno Setup 1.2.2.1 / Inno Setup 5.5.5a 的 VCL 样式。

编辑:添加图像(感谢您这样做)。忽略关于下载失败的错误,我这样做是为了让它停止并弹出一个框来捕获窗口和弹出窗口的皮肤。

0 投票
1 回答
1326 浏览

delphi - 如何为我自己的组件创建 Vcl 主题样式?

我使用BitmapStyleDesigner.exe(随 delphi xe5 提供)将 vcl 样式编辑到我的应用程序中。

如何将自定义组件添加到样式器调色板?我希望TMyButton继承的 myTButton具有与标准不同的颜色、形状等TButton

这只能通过编辑样式来完成,还是我必须编辑的来源TMyButton

embarcadero wiki(到目前为止)没有帮助。

提前致谢!

0 投票
1 回答
678 浏览

delphi - Delphi XE3 中缺少 VCL 样式

我的 VCL 样式列表在 Delphi XE3 中是空的。

项目 |  选项 |  外貌

我还安装了 Delphi XE7,并且 VCL 样式在这里显示得很好。

我已经检查了其他解决方案,其中一个建议检查样式文件是否存在于正确的路径中,他们会这样做。对于 Delphi XE3,这将是:

C:\Users\Jason\Documents\RAD Studio\10.0\Styles

此目录中有 27 个 .vsf 文件。

另一个帖子建议运行我使用“默认”选项运行的 redistsetup.bat 文件,但这没有任何区别。

请问有人对我可以检查的内容有任何其他想法吗?

0 投票
1 回答
140 浏览

delphi - 启用运行时主题时 FTouchManager 导致 AV

当我写它的标题时,当启用运行时主题时,我遇到了由 FTouchManager 引起的 AV 问题。在主窗体上,我有一个带有一个按钮的框架。OnClick 事件调用必须销毁框架的主窗体方法。如果我单击该按钮,我会在“Vcl.Controls”中获得 AV。当我禁用运行时主题时,一切都会正常。我怎么解决这个问题?

提前谢谢你,蒂姆

测试平台:Delphi XE3、XE6 平台:Win32

Vcl.Controls:

帧单位:

主窗体单元:

0 投票
1 回答
244 浏览

delphi - 启用运行时主题时不显示 PngBitBtn 的标题

我用一个 PngBitBtn 做了一个简单的项目,然后用以下配置编译它:

  1. 运行时主题被禁用
    • 调试模式 - 好的
    • 释放模式 - 确定
  2. 运行时主题已启用
    • 调试模式 - 好的
    • 发布模式 - PngBitBtn 上没有字幕

正确显示字幕的唯一方法是关闭优化。是否可以在不关闭优化的情况下解决此问题?

提前谢谢你,蒂姆

在德尔福 XE3、XE6 上测试。平台:win32。PNGComponents 版本:来自 embarcadero CodeCentral 的最新版本。

打印屏幕:

打印屏幕

0 投票
1 回答
378 浏览

delphi - 将当前 Windows 主题保存到 vsf 文件

如何将当前的 Windows 7 主题(默认,aero)保存为 Delphi 样式格式(vsf 文件)?

0 投票
1 回答
814 浏览

delphi - 使用从 Delphi XE7 到 Delphi XE2 的 VCL 样式

我已将所有文件从 C:\Program Files (x86)\Embarcadero\Studio\15.0\Redist\styles\vcl 复制到 C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\Redist\styles\vcl

在我的 XE2 IDE 中,我转到 Projects->Options->Application->Appearance 并且 XE7 中的其他样式没有出现。

我还复制了 C:\Users\Public\Documents\Embarcadero\Studio\15.0\Styles 到 C:\Users\Public\Documents\RAD Studio\9.0\Styles 但它使所有样式都消失了。

如何让 XE2 IDE 从另一个版本的 IDE 中读取新样式?

谢谢。

0 投票
1 回答
746 浏览

delphi - VCL Styles 随机中断

我有一个从 TMemo 派生的控件。在我第一次使用 Delphi XE7 VCL Styles 之前,它一直很好用。在 Delphi XE7 下,样式不会应用于控件的滚动条。如果使用深色主题/样式,它看起来很可怕,而滚动条是银色的。

漏洞

尝试创建一个可以重现错误的最小项目,我发现了一些非常有趣的东西:添加/删除随机代码行(或 DFM 控件)将使错误出现/消失。

问题:究竟是什么导致了这种奇怪的行为以及如何解决它?

源代码在这里:

http://s000.tinyupload.com/index.php?file_id=24129853712119260018