我一直在设计FireMonkey控件,但有一个问题我遇到了一些实际问题,那就是如何使用FireMonkey样式设计器(特别是Bitmap样式设计器)将位图合并到FireMonkey样式中.某些样式对象(例如,TButtonStyleObject)具有BitmapLink属性,但我无法看到它们如何在为FireMonkey控件生成的新自定义样式中工作.
让我试着让问题尽可能透明.我添加了一个样书并将其资源设置为Delphi样式目录中的MetropolisUIGreen.Style(在XE7中,它位于C:\ Users\Public\Documents\Embarcadero\Studio\16.0\Styles中).然后我打开FireMonkey样式设计器并找到按钮式样式,它由TButtonStyleObject和TButtonStyleTextObject组成,两者都是TLayout的父级.TButtonStyleObject的SourceLookup属性值为MetroGreenstyle.png,它是一个StyleName,与加载了MetropolisUIGreen.png图像的TImage相关联.
选择TButtonStyleObject(其StyleName为背景),我检查NormalLink属性,它是TBitmapLinks的集合.据我所知,我在NormalLink中定义的BitmapLink包含有关应该用于按钮的位图的信息,包括与MetroGreenstyle.png文件的矩形区域对应的坐标(SourceRect).
我的假设似乎是错误的,因为当我使用图形程序检查MetroGreenstyle.png时,这些坐标没有什么有趣的.我已经研究过的许多其他风格的BitmapLinks,有太多我发现,与sourceRect坐标似乎并不实际定义stylelookup png文件的有意义的区域.
我显然有这个错误.BitmapLink的SourceRect坐标如何定义FireMonkey在渲染控件时应使用的位图.
- 编辑我实际问了四个问题.我已将此问题更新为仅包含一个问题.我将在其他帖子中包含其他问题. -
我在组合TScaledLayout和从fmx中的位图样式设计器创建的自定义样式时遇到绘画问题.
为了演示,我加载了通过在位图样式设计器中选择"VCL/FMX的新样式" - >"另存为.style"创建的默认自定义样式.我在一些彩色矩形上放了几个标准控件:TScaledLayout上的红色和绿色,蓝色直接放在表单上.当我拉伸表格时,ScaledLayout上的控件上会出现彩色线条; 背景部分可见:
如果我将表单的大小设置为与设计时尺寸完全匹配,则线条会消失.这似乎是一个非常重要的问题,我当然不能像这样一起使用这两个.有没有人对可能的修复或解决方法有所了解?
我有自定义样式的 FireMonkey 控件。其样式包含多层嵌套控件。
我需要访问这些控件并在运行时更改一些样式属性。为此,我正在使用FindStyleResource<T>方法。
我在检索样式内的第一级控件时没有问题。FindStyleResource但是,如果控件父级是 的后代,则访问第二级控件将失败TStyledControl。
问题是如何访问这些嵌套样式控件,无论其父类型如何?
风格:
object TStyleContainer
object TLayout
StyleName = 'MyHeader'
Align = Center
Size.Width = 100.000000000000000000
Size.Height = 50.000000000000000000
Size.PlatformDefault = False
Visible = False
TabOrder = 0
object TLabel
StyleName = 'title'
Align = Client
StyledSettings = [Style]
Size.Width = 36.000000000000000000
Size.Height = 50.000000000000000000
Size.PlatformDefault = False
TextSettings.HorzAlign = Center
Text = 'Title'
end
object TLayout
StyleName = 'green'
Align = MostLeft
Size.Width = 32.000000000000000000
Size.Height = 50.000000000000000000 …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个虚拟键盘,每个按钮都有一个数字和几个字母.例如,数量2也将有文字ABC旁边,用较小的字体大小和数量3都会有DEF它旁边.
我可以逐个成功编辑这些按钮的自定义样式.一个按钮,我可以删除一个TText样式元素,更改每个的对齐和文本设置,它工作正常...
但是,我必须逐个完成,自定义每个按钮的样式.如果我尝试重复使用此样式,则ABC所有键上的额外字母将相同.但我需要他们各自不同.
如何制作一个可重复使用的样式,这也可以让我在每个按钮中使用不同的子文本?或者我是否必须为每个按钮创建一个独特的风格?
我有一个应用程序,其中包含多个样式手册,其中包含来自 delphistyles.com 的样式。我想添加一个轨迹栏,以允许用户在运行时更改表单的透明度,就像在 VCL 中使用 alphablend 所做的那样。
这篇文章:FireMonkey 中的 AlphaBlend说道:
要使表单背景半透明,您应该将表单透明度属性设置为 true 并使用带有 alpha 值的 Fill.Color,如 $AAFFFFFF(with Fill.Kind = bkSolid)。在这种情况下,窗体边框变得不可见(至少在 Delphi XE2 中)
但是,当我的表单有样式手册时,我该如何实现这一目标呢?