2017-10-19 41 views
1

德爾福10.2東京我使用TAniIndicator,直到數據庫加載。改變顏色的TAniIndicator

默認情況下,氣泡的顏色爲黑色。我想將其更改爲白色而不創建Style。我還沒有找到任何財產。

有什麼方法可以改變它嗎? 謝謝。

+0

添加一個風格的書,編輯compoent的風格。你可以在網上找到很多例子 –

+0

是的,但是和AniIndicator有點不同,我沒有看到組件的細節? – Bosshoss

回答

5

你可以做這樣的事情(默認方式),請注意,您需要提高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