在ApplyStyleLookup中更改渐变

时间:2014-08-29 05:48:33

标签: delphi firemonkey delphi-xe6

我试图在运行时使用ApplyStyleLookup更改TSpeedbutton的渐变颜色,但由于某种原因,只有按钮的顶部三分之一会改变颜色。当我在设计时更改它时,我看到渐变的三个点。我正在使用TSpeedbuttons StyleLookup中的buttonstyle。使用Delphi XE6 Rad Studio。

感谢。 添加了8/29/14我找到了改变渐变的方法,见下文。但我的问题是按钮式有三个矩形,我需要访问的是背景下的rectangle2。我需要什么才能访问它。

procedure TForm1.SpeedButton1ApplyStyleLookup(Sender: TObject);
var
  BckObject: TFmxObject;
begin
  BckObject := SpeedButton1.FindStyleResource('background');
  if Assigned(BckObject) and (BckObject is TRectAngle) then
  begin
    TRectAngle(BckObject).Fill.Gradient.Style := TGradientStyle.Linear;
    TRectAngle(BckObject).Fill.Gradient.Points.Points[0].Color := $FF0097A5;
    TRectAngle(BckObject).Fill.Gradient.Points.Points[0].Offset := 0.25;
    TRectAngle(BckObject).Fill.Gradient.Points.Points[1].Color := $FF0097F5;
    TRectAngle(BckObject).Fill.Gradient.Points.Points[1].Offset := 1.00;
  end;

end;

1 个答案:

答案 0 :(得分:0)

背景下的rectangle2(TRectAngle)将StyleName属性设置为空白,通过在StyleName中输入名称并保存它我可以使用相同的方法访问rectangle2: BckObject:= SpeedButton1.FindStyleResource(' myname');