【问题标题】:Get the colors of TProgressBar control with Aero使用 Aero 获取 TProgressBar 控件的颜色
【发布时间】:2011-09-24 18:27:38
【问题描述】:

如何在启用 Windows Aero 功能的情况下以编程方式获取 TProgressBar 控件的条形颜色和背景颜色?

我正在使用第三方进度条控件,而不是 Delphi 附带的默认进度条控件,我正在尝试用正确的颜色绘制控件。

我使用 Delphi 2010。

【问题讨论】:

  • 我不认为进度条是单一颜色的。它是用一些漂亮的渐变绘制的。你想要一个特定的平均颜色吗?它仍然不会像航空主题。也许您想知道如何扩展第三方控件,使其能够感知并使用主题绘制自己?
  • 沃伦是对的。没有“条形颜色”。 “Delphi自带”的其实是一个原生的Windows进度条控件(其实大部分是Delphi自带的组件,如TEditTButtonTMemoTRichEditTListBox、@ 987654328@ 等只是本机控件/对象的包装器)。标准 Windows 控件有什么问题?如果需要自定义控件,可以很方便的使用主题服务API来绘制当前主题的进度条部分。
  • 查看我的回答 herethis question
  • 我很好奇。为什么要使用 3rd 方进度条控件?除了标准系统控制之外,它还提供什么?
  • 无法支持 Aero 主题。 :-) 很讽刺,是吗?

标签: delphi windows-7 colors progress-bar aero


【解决方案1】:

选项,按对初学者最敏感到对初学者最不敏感的顺序排列:

(1) 取出第三方进度条,放入普通进度条。 (初学者,和聪明的老家伙解决方案,讽刺的是一样的)

(2) 获取皮肤/主题包,并按照您想要的方式绘制。 (中级)

(3) 学习使用 Themes 和 UxThemes 单元来扩展您的自定义控件。 (高级)

在你从 #2 和 #3 受够了痛苦之后,你会回到 #1,而你内心顽固(明智)的老前辈会做出与业余排名相同的决定。

【讨论】:

  • +1 选项 1 是赢家。尽量不要修复没有损坏的部分。
  • +1,去过那里,做到了,我自己又回到了#1 :) 另外我对这个描述笑了——太真实了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-31
相关资源
最近更新 更多