FMX 的样式丰富了我们的设计,但我们在运行时想改变特定的Style的属性却没有直接的办法,下面的函数提供了一种途径,让你找到特定的样式,然后进行处理。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
function FindStyleByName(AParent:TFMXObject;AName:String):TFMXObject;
var
I: Integer;
AObj:TFMXObject;
begin
Result:=nil;
for I := 0 to AParent.ChildrenCount-1 do
begin
AObj:=AParent.Children[I];
if AObj.StyleName=AName then
Result:=AObj
else
Result:=FindStyleByName(AObj,AName);
if Assigned(Result) then
break;
end;
end;
|
用法示例:
1
2
3
4
5
6
7
|
procedure TForm1.btnLeftApplyStyleLookup(Sender: TObject);
var
AText:TButtonStyleTextObject;
begin
AText:=FindStyleByName(Sender as TFMXObject,‘text‘) as TButtonStyleTextObject;
AText.NormalColor:=TAlphaColors.White;
end;
|
在 btnLeft 的 OnApplyStyleLookup 里,我们将按钮的颜色改变为白色。