改变TAniIndicator的颜色

时间:2017-10-19 09:24:36

标签: delphi firemonkey

在Delphi 10.2 Tokyo中,我使用TAniIndicator直到加载数据库。

默认情况下,气泡的颜色为黑色。我想将其更改为白色而不创建Style。我还没有找到任何财产。

有没有办法改变它?

2 个答案:

答案 0 :(得分:6)

您可以执行以下操作(默认样式),请注意您需要改进ReplaceBlackColor功能才能使气泡完全变白

procedure ReplaceBlackColor(const ABitmap: TBitmap);
var
  I, J: Integer;
  M: TBitmapData;
  C: PAlphaColorRec;
begin
  if ABitmap.Map(TMapAccess.ReadWrite, M) then
  try
    for J := 0 to ABitmap.Height - 1 do
      for I := 0 to ABitmap.Width - 1 do
      begin
        C := @PAlphaColorArray(M.Data)[J * (M.Pitch div 4) + I];
        if C^.Color = TAlphaColorRec.Black then
          C^.Color := TAlphaColorRec.White;
      end;
  finally
    ABitmap.Unmap(M);
  end;
end;

procedure TForm3.Button1Click(Sender: TObject);
var
  bla: TBitmapListAnimation;
begin
  bla := AniIndicator1.FindStyleResource('ani') as TBitmapListAnimation;
  ReplaceBlackColor(bla.AnimationBitmap);
end;

答案 1 :(得分:1)

向指示器控件添加TFillRGBEffect,并将其Color属性设置为所需的颜色。

TFillRGBEffect与其他效果一样,将应用于“效果”下面的任何控件,因此您可以一次绘制整个UI。