标签: vcl-styles

对于最大化的风格窗户,我可以做些什么,在相邻的显示器上显示边框?

在多监视器系统上,"空白"VCL应用程序可以最大化,但启用了样式的相同应用程序(以及一个默认选择的应用程序)最大化不正确.我所看到的是窗口的右侧边缘延伸到第二台显示器(我的主要位于左侧).当我开始与其他Windows应用程序进行比较时,我注意到在Windows 7(至少)下,最大化的窗口甚至在左侧,右侧或底侧都没有非客户端边框.事实上,标准VCL(非样式)应用程序的行为方式相同,没有非客户端边界.

我该如何解决?我注意到TFormStyleHook有一个WMNCCalcSize的处理程序,我还没有解剖,但让我想知道VCL是否可能错误地处理这个消息以获得最大化的窗口.

delphi maximize-window delphi-xe2 vcl-styles

22
推荐指数
1
解决办法
2183
查看次数

如何在Delphi中禁用VCL样式

我在Delphi XE2中使用新的VCL样式系统.它工作得很好,但是我想为一个特定的表单禁用它,它上面有许多图像(一个启动/关于表单).问题是我似乎无法找到将其与特定样式相关联的表单属性,因此不能仅为该表单禁用它.似乎只有全局TStyleManager类似乎是静态的.

考虑到这一点,是否只有这样才能实现调用TStyleManager.TrySetStyle('Windows'),显示表单,然后在表单关闭时将其设置回原始样式?

delphi skinning delphi-xe2 vcl-styles

19
推荐指数
1
解决办法
7056
查看次数

如何编写TDBCtrlGrid VCL样式自定义类?

这里有很多关于XE2 VCL样式和按钮,面板,编辑等自定义颜色和VCL样式的问题.尽管我希望现有问题涵盖它,但它们并没有...因此DB控制网格似乎是另一个特殊情况.

  1. 在DB Control Grid VCL源代码中,它会注册一个样式挂钩: TCustomStyleEngine.RegisterStyleHook( TDBCtrlGrid, TScrollingStyleHook);

  2. 但是,如果您想编写自己的DB Control Grid VCL样式挂钩,那么这不是您想要的.如果你这样做,你可以将整个控件绘制成一个非常大的滚动条.

在此输入图像描述

  1. 那么如何自定义数据库控制网格?完全禁用主题后,似乎仍然不允许自定义绘制活动行.因此,我认为必须编写自定义子类并覆盖Paint方法,并为此目的编写VCL样式钩子类.

  2. 似乎应该主要使用常规所有者绘制事件OnPaintPanel进行自定义,并且添加该事件(如果没有)修复了我看到的最大的VCL样式故障,TDBCtrlGrid即它不会使用SelectedColor只是用灰色或其他任何基色来绘制所有东西.如果有人可以确认,或者告诉我,我们将不胜感激.

delphi delphi-xe2 vcl-styles

19
推荐指数
0
解决办法
1234
查看次数

有没有Delphi XE2样式库?

在XE2中有一个新功能:'styles',用于VCL(.vsf)和Firemonkey( .styles),还有一些在C:\ Program Files\Embarcadero\RAD Studio\9.0\Redist\styles目录中提供.

由于创建新样式似乎很容易,有没有"样式库"网站或博客?

delphi vcl delphi-xe2 firemonkey vcl-styles

16
推荐指数
1
解决办法
8577
查看次数

Delphi VCL样式教程 - 如何在运行时更改样式

是否有一个很好的VCL样式教程,我们看到如何动态(在运行时)加载/更改样式?

这应该适用于Delphi XE2及更高版本,因为XE2是第一个带有VCL样式的版本.

delphi delphi-xe2 vcl-styles

14
推荐指数
3
解决办法
4万
查看次数

在VCL样式表单上禁用TButton问题

当我尝试使用下面的代码行禁用样式化VCL上的Button时

TButton(Sender).enabled:= False;
Run Code Online (Sandbox Code Playgroud)

我得到了这个结果(在运行时禁用了按钮)

在此输入图像描述

而不是这个!(设计时禁用按钮)

在此输入图像描述

有两个或多个相同颜色的按钮彼此相邻,一个被禁用而另一个被启用,这实在令人困惑

delphi delphi-xe2 vcl-styles

13
推荐指数
2
解决办法
3521
查看次数

我如何将vcl样式应用于TPopupmenu?

我在Delphi XE2应用程序中使用vcl样式,但是当我弹出TPopupmenu这是使用本机windows外观和感觉显示时,是否有任何方法将vcl样式颜色应用于TPopUpMenu?

在此输入图像描述

delphi delphi-xe2 vcl-styles

13
推荐指数
1
解决办法
858
查看次数

VCL样式 - 表单的客户端大小减少

我不知道它是不是一个bug ...但是当我设置除"Windows"之外的任何其他VCL样式时,窗口宽度会减小.

Windows风格 任何其他风格看起来像这样...... -

这有什么解决方案吗?

更新 我把它提交给QC:http://qc.embarcadero.com/wc/qcmain.aspx?d = 103697 希望他们能解决它...

delphi delphi-xe2 vcl-styles

11
推荐指数
3
解决办法
3382
查看次数

如何在启用VCL样式的情况下更改TPanel的颜色?

启用VCL样式时,我需要更改TPanel的颜色.我尝试使用和修改"启用VCL样式更改编辑控件的颜色 "一文中列出的代码,但它不适用于TPanel.如何在启用VCL样式的情况下更改TPanel的颜色?

delphi delphi-xe2 vcl-styles

11
推荐指数
2
解决办法
1万
查看次数

右键单击TOpenDialog中的文件时,使用自定义样式会显示无效字符

请参阅以下步骤以重现.适用于XE2,但不适用于XE8.

  1. 创建一个新的VCL表单应用程序 - Delphi
  2. 在表格上放置一个TButton和一个TOpenDialog
  3. 在按钮OnClick事件调用中OpenDialog1.Execute
  4. 运行程序,打开文件对话框,右键单击文本文件=>显示菜单项确定
  5. 转到项目/选项/应用程序/外观.启用并选择自定义样式(例如"Ruby Graphite")并重新编译
  6. 运行程序,打开文件对话框,右键单击文本文件=>不正确显示菜单项(显示无效字符)

使用XE8订阅更新1(Windows从8.1升级到10)进行测试

delphi topendialog vcl-styles windows-10 delphi-xe8

10
推荐指数
1
解决办法
862
查看次数