2017-10-19 17 views
1

Dans Delphi 10.2 Tokyo J'utilise un TAniIndicator jusqu'à ce que la base de données soit chargée. Par défaut, la couleur de la bulle est noir. Je voudrais le changer pour être blanc sans créer un Style. Je n'ai trouvé aucune propriété pour cela.Changer la couleur de TAniIndicator

Y a-t-il un moyen de le changer? Merci.

+0

Ajouter un livre de style et modifier le style de la compoent. Vous pouvez trouver beaucoup d'exemples en ligne –

+0

Oui, mais c'est un peu différent avec l'AniIndicator, je n'ai pas vu le détail du composant? – Bosshoss

Répondre

5

Vous pouvez faire quelque chose comme ça (pour le style par défaut), notez que vous aurez besoin pour améliorer la fonction ReplaceBlackColor pour faire bulle complètement blanc

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

Alors vous êtes sur le point de cliquer sur ce bouton pour chaque image :)? – Victoria

+0

@Victoria Toutes les images sont en bitmap unique. – EugeneK

+0

Merci! Je ne le savais pas (et c'était simplement une mauvaise blague, je ne m'attendais pas à ce que 'AnimationBitmap' sans index soit une seule image). Je vérifiais comment modifier le membre 'FFill' de l'extérieur (comme il est défini dans la méthode' ApplyStyle' du contrôle), mais pas de chance. J'ai une expérience très limitée avec FMX. – Victoria