改变颜色的TAniIndicator

问题描述:

德尔福10.2东京我使用TAniIndicator,直到数据库加载。改变颜色的TAniIndicator

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

有什么方法可以改变它吗? 谢谢。

+0

添加一个风格的书,编辑compoent的风格。你可以在网上找到很多例子 –

+0

是的,但是和AniIndicator有点不同,我没有看到组件的细节? – Bosshoss

你可以做这样的事情(默认方式),请注意,您需要提高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; 
+0

所以你即将点击每个帧的按钮:)? – Victoria

+0

@维多利亚所有框架都位于单个位图中。 – EugeneK

+0

谢谢!不知道(这只是一个不好的笑话,我没有预料到没有索引的'AnimationBitmap'会是一个单一的框架)。我正在检查如何从外部修改FFill成员(因为它在控件的ApplyStyle方法中设置),但没有运气。我在FMX方面的经验非常有限。 – Victoria