FMX的Memo怎么设置颜色?

ooolinux 2023-02-08 22:01:27

如题

...全文
645 42 打赏 收藏 转发到动态 举报
写回复
用AI写文章
42 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

FMX的styles就是贴图(至少主要是贴图,可能还有少部分是实时绘制出来的),这就是FMX的默认styles资源(自带三种分辨率的):

img

ooolinux 02-20
  • 举报
回复
@日立奔腾浪潮微软松下联想 贴图跟Brush有关吗?
@ooolinux 刷子可以做固定色填充、过渡色填充、位图填充、线型填充...
ooolinux 02-20
  • 举报
回复
@日立奔腾浪潮微软松下联想 就是说一定有个Brush?那如果给Memo的Color属性(假如有的话)赋值让Brush用固定色填充不是也可以?
7条回复
  • 打赏
  • 举报
回复

也可以在设计时把styles保存为单独的.style文件,RADStudio中自带了一些(位于\Program Files (x86)\Embarcadero\Studio\版本\Redist\styles下面)。
FMX框架的设计思路是强调“设计”,所以它的设计时功能空前强大,很多VCL中需要自绘制写很多代码的效果,在FMX中可以在设计时简单完成,无需写代码或者写很少的代码。
这种设计思想是将UI设计和编码尽可能分离,UI可以交给专门的UI设计人员+美工去做(类似web前端开发了),不需要程序员去操心。所以虽然感觉不能再Memo1.Color := claRed; 有点烦恼,实际上可以搞几套styles,每套存为一个StyleBook,运行时可以简单·切换,设置StyleBook属性或者调用SetStyleBook即可。
也可以直接从外部文件加载:TStyleManager.SetStyleFromFile(xxx);

ooolinux 02-16
  • 举报
回复
@日立奔腾浪潮微软松下联想 有道理,把自绘制变成UI设计,不过像Color这种常用的东西,最好两边都有,只要不冲突,好用实用还是第一位的
@ooolinux 在FMX的早期,XE2、XE3时代,导出一个Color属性是可能的,而且很简单,因为那时候的设计,每个支持style的组件都内置一个TRectangle作为背景,后来FMX多次重构,为了节省资源,去掉了内置的TRectangle,改为使用style资源中的背景小位图填充,直接修改背景色就变得有些困难。
ooolinux 02-17
  • 举报
回复
@日立奔腾浪潮微软松下联想 控件都是绘制出来没有Handle,为什么去掉Rectangle会节省资源?
6条回复
tanqth 02-15
  • 打赏
  • 举报
回复

所以,目前的方式,归根结底还是修改styles,不管是代码方式还是直接在设计期修改对应的样式。
在设计期修改还有一个好处是,整个项目里的其他Memo,可以直接选择使用相同的样式。

img

设计期修改样式后,会增加一个新的样式名,其他的MEMO可以直接选用。从而达到整体项目的统一。

ooolinux 02-15
  • 举报
回复
@tanqth 新的样式文件是作为项目源代码的一部分吗?
tanqth 02-15
  • 举报
回复
@ooolinux 是资源内容的一部分,不是代码。
ooolinux 02-16
  • 举报
回复
@tanqth 是一个独立的文件吗?
2条回复
ooolinux 02-14
  • 举报
回复
@日立奔腾浪潮微软松下联想 大概明白了,不过有点复杂。如果不用style,直接用一个Rectangle控件做背景有用吗?
@ooolinux 应该没用,虽然可以把Rectangle放在Memo里,但是没办法让它真正“沉底”,会把字挡住。但是可以用代码在运行时修改style的资源来改变背景色。
ooolinux 02-15
  • 举报
回复
@日立奔腾浪潮微软松下联想 style相当于是把一个控件分成许多独立元素分别控制?
tanqth 02-09
  • 打赏
  • 举报
回复

img


这个里面。
你可以单独引入一个Windows 10 Desktopstyle.png文件去选择对应的显示内容。

ooolinux 02-10
  • 举报
回复
@tanqth 要替换背景图片吗?
tanqth 02-10
  • 举报
回复
@ooolinux 你也可以在他原图片中选择其他内容。
ooolinux 02-10
  • 举报
回复
@tanqth 我需要的是特定的颜色
3条回复
tanqth 02-08
  • 打赏
  • 举报
回复

修改styles.
参考这个文章:揭秘FMX进度条样式修改 (点击跳转)

ooolinux 02-09
  • 举报
回复
@tanqth 这么做有点麻烦
tanqth 02-09
  • 举报
回复
@ooolinux 好像是没有更好的方法了。只少目前还没找到。
ooolinux 02-09
  • 举报
回复
@tanqth styles里面好像也没有属性可以设置

5,284

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧