FMX 的样式丰富了我们的设计,但我们在运行时想改变特定的Style的属性却没有直接的办法,下面的函数提供了一种途径,让你找到特定的样式,然后进行处理。
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;
用法示例:
procedure TForm1.btnLeftApplyStyleLookup(Sender: TObject); var AText:TButtonStyleTextObject; begin AText:=FindStyleByName(Sender as TFMXObject,'text') as TButtonStyleTextObject; AText.NormalColor:=TAlphaColors.White; end;
在 btnLeft 的 OnApplyStyleLookup 里,我们将按钮的颜色改变为白色。