更改TAniIndicator的颜色

问题描述 投票:2回答:2

在德尔福10.2东京我使用TAniIndicator直到该数据库被加载。

缺省情况下,气泡的颜色是黑色。我想改变它是白色的,而无需创建一个Style。我还没有发现任何财产。

有什么办法去改变它?

delphi firemonkey
2个回答
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
投票

一个TFillRGBEffect添加到所述指示器的控制和设置其Color属性到期望的颜色。

TFillRGBEffect,像其他的效果,将适用于“下面”的任何控制,所以你可以在短短一气呵成重绘整个UI。

© www.soinside.com 2019 - 2024. All rights reserved.