Browse Source

BCMaterialProgressBarMarquee enabled and visible

Leandro Diaz 3 years ago
parent
commit
468d66ec8d
1 changed files with 23 additions and 1 deletions
  1. 23 1
      bcmaterialprogressbarmarquee.pas

+ 23 - 1
bcmaterialprogressbarmarquee.pas

@@ -22,7 +22,8 @@ type
     procedure SetBarColor(AValue: TColor);
     procedure SetBarColor(AValue: TColor);
     procedure TimerOnTimer(Sender: TObject);
     procedure TimerOnTimer(Sender: TObject);
   protected
   protected
-
+    procedure SetEnabled(Value: Boolean); override;
+    procedure SetVisible(Value: Boolean); override;
   public
   public
     procedure DiscardBitmap;
     procedure DiscardBitmap;
     procedure RedrawBitmapContent; override;
     procedure RedrawBitmapContent; override;
@@ -67,6 +68,20 @@ begin
   DiscardBitmap;
   DiscardBitmap;
 end;
 end;
 
 
+procedure TBCMaterialProgressBarMarquee.SetEnabled(Value: Boolean);
+begin
+  inherited SetEnabled(Value);
+  FTimer.Enabled := Value and Visible;
+  DiscardBitmap;
+end;
+
+procedure TBCMaterialProgressBarMarquee.SetVisible(Value: Boolean);
+begin
+  inherited SetVisible(Value);
+  FTimer.Enabled := Enabled and Value;
+  DiscardBitmap;
+end;
+
 procedure TBCMaterialProgressBarMarquee.SetBarColor(AValue: TColor);
 procedure TBCMaterialProgressBarMarquee.SetBarColor(AValue: TColor);
 begin
 begin
   if FBarColor = AValue then
   if FBarColor = AValue then
@@ -84,9 +99,16 @@ end;
 
 
 procedure TBCMaterialProgressBarMarquee.RedrawBitmapContent;
 procedure TBCMaterialProgressBarMarquee.RedrawBitmapContent;
 begin
 begin
+  if FTimer.Enabled then
+  begin
   Bitmap.Fill(Color);
   Bitmap.Fill(Color);
   Bitmap.Rectangle(Rect(progressbar_x, 0, progressbar_x + progressbar_w, Bitmap.Height),
   Bitmap.Rectangle(Rect(progressbar_x, 0, progressbar_x + progressbar_w, Bitmap.Height),
     BarColor, BarColor);
     BarColor, BarColor);
+  end
+  else
+  begin
+    Bitmap.Fill(BarColor);
+  end;
 end;
 end;
 
 
 constructor TBCMaterialProgressBarMarquee.Create(AOwner: TComponent);
 constructor TBCMaterialProgressBarMarquee.Create(AOwner: TComponent);