From: Remko B. <rem...@us...> - 2003-02-02 23:59:48
|
Update of /cvsroot/jvcl/rm/source In directory sc8-pr-cvs1:/tmp/cvs-serv23252 Modified Files: JvSpecialProgress.pas Log Message: Mantis #596 and cleaned Index: JvSpecialProgress.pas =================================================================== RCS file: /cvsroot/jvcl/rm/source/JvSpecialProgress.pas,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** JvSpecialProgress.pas 9 Jan 2003 13:36:09 -0000 1.1 --- JvSpecialProgress.pas 2 Feb 2003 23:59:44 -0000 1.2 *************** *** 15,19 **** All Rights Reserved. ! Contributor(s): Michael Beck [mb...@bi...]. Last Modified: 2000-02-28 --- 15,21 ---- All Rights Reserved. ! Contributor(s): ! Michael Beck [mb...@bi...]. ! [eldorado] Last Modified: 2000-02-28 *************** *** 29,60 **** unit JvSpecialProgress; - - interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, StdCtrls, JVCLVer; type TJvSpecialProgress = class(TGraphicControl) private ! FTextVisible: Boolean; ! FTransparent: Boolean; ! FSolid: Boolean; ! FCentered: Boolean; ! FPosition: Integer; ! FMaximum: Integer; ! FStep: Integer; ! FMinimum: Integer; FEndColor: TColor; - FColor: TColor; - FStartColor: TColor; - FFont: TFont; FHintColor: TColor; FGradientBlocks: Boolean; ! FAboutJVCL: TJVCLAboutInfo; FOnMouseEnter: TNotifyEvent; ! FOnParentColorChanged: TNotifyEvent; FOnMouseLeave: TNotifyEvent; --- 31,62 ---- unit JvSpecialProgress; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, StdCtrls, + ExtCtrls, // for Frame3d JVCLVer; type + TJvTextOption = (toCaption, toFormat, toNoText, toPercent); + TJvSpecialProgress = class(TGraphicControl) private ! FAboutJVCL: TJVCLAboutInfo; ! FBorderStyle: TBorderStyle; FEndColor: TColor; FHintColor: TColor; FGradientBlocks: Boolean; ! FMaximum: Integer; ! FMinimum: Integer; ! FPosition: Integer; ! FSolid: Boolean; ! FStartColor: TColor; ! FStep: Integer; ! FTextCentered: Boolean; ! FTextOption: TJvTextOption; ! FOnMouseEnter: TNotifyEvent; ! FOnParentColorChange: TNotifyEvent; FOnMouseLeave: TNotifyEvent; *************** *** 82,89 **** FLastBlockWidth: Integer; function GetPercentDone: Longint; ! procedure SetCentered(const Value: Boolean); ! procedure SetColor(const Value: TColor); procedure SetEndColor(const Value: TColor); - procedure SetFont(const Value: TFont); procedure SetGradientBlocks(const Value: Boolean); procedure SetMaximum(const Value: Integer); --- 84,89 ---- FLastBlockWidth: Integer; function GetPercentDone: Longint; ! procedure SetBorderStyle(Value: TBorderStyle); procedure SetEndColor(const Value: TColor); procedure SetGradientBlocks(const Value: Boolean); procedure SetMaximum(const Value: Integer); *************** *** 92,103 **** procedure SetSolid(const Value: Boolean); procedure SetStartColor(const Value: TColor); ! procedure SetTextVisible(const Value: Boolean); ! procedure SetTransparent(const Value: Boolean); procedure MouseEnter(var Msg: TMessage); message CM_MOUSEENTER; procedure MouseLeave(var Msg: TMessage); message CM_MOUSELEAVE; ! procedure CMParentColorChanged(var Msg: TMessage); message ! CM_PARENTCOLORCHANGED; ! procedure FontChanged(Sender: TObject); procedure PaintRectangle; --- 92,104 ---- procedure SetSolid(const Value: Boolean); procedure SetStartColor(const Value: TColor); ! procedure SetTextCentered(const Value: Boolean); ! procedure SetTextOption(const Value: TJvTextOption); procedure MouseEnter(var Msg: TMessage); message CM_MOUSEENTER; procedure MouseLeave(var Msg: TMessage); message CM_MOUSELEAVE; ! procedure CMParentColorChanged(var Msg: TMessage); message CM_PARENTCOLORCHANGED; ! procedure CMColorChanged(var Msg: TMessage); message CM_COLORCHANGED; ! procedure CMFontChanged(var Msg: TMessage); message CM_FONTCHANGED; ! procedure CMTextChanged(var Msg: TMessage); message CM_TEXTCHANGED; procedure PaintRectangle; *************** *** 109,113 **** procedure Paint; override; procedure Loaded; override; - procedure UpdateBuffer; procedure UpdateTaille; --- 110,113 ---- *************** *** 115,145 **** constructor Create(AOwner: TComponent); override; destructor Destroy; override; property PercentDone: Longint read GetPercentDone; published ! property AboutJVCL: TJVCLAboutInfo read FAboutJVCL write FAboutJVCL stored ! False; property Maximum: Integer read FMaximum write SetMaximum default 100; property Minimum: Integer read FMinimum write SetMinimum default 0; ! property Transparent: Boolean read FTransparent write SetTransparent default ! False; ! property StartColor: TColor read FStartColor write SetStartColor default ! clWhite; ! property EndColor: TColor read FEndColor write SetEndColor default clBlack; ! property Step: Integer read FStep write FStep default 10; property Position: Integer read FPosition write SetPosition default 0; - property Color: TColor read FColor write SetColor default clBtnFace; - property Solid: Boolean read FSolid write SetSolid default False; - property GradientBlocks: Boolean read FGradientBlocks write SetGradientBlocks - default - False; - property TextVisible: Boolean read FTextVisible write SetTextVisible default - False; - property TextFont: TFont read FFont write SetFont; - property TextCentered: Boolean read FCentered write SetCentered default - False; - procedure StepIt; - property Align; - property Anchors; property ShowHint; property Visible; property OnClick; --- 115,142 ---- constructor Create(AOwner: TComponent); override; destructor Destroy; override; + procedure StepIt; property PercentDone: Longint read GetPercentDone; published ! property AboutJVCL: TJVCLAboutInfo read FAboutJVCL write FAboutJVCL stored False; ! property Align; ! property Anchors; ! property BorderStyle: TBorderStyle read FBorderStyle write SetBorderStyle default bsNone; ! property Caption; ! property Color; ! property EndColor: TColor read FEndColor write SetEndColor default clBlack; ! property Font; ! property GradientBlocks: Boolean read FGradientBlocks write SetGradientBlocks default False; ! property HintColor: TColor read FHintColor write FHintColor default clInfoBk; property Maximum: Integer read FMaximum write SetMaximum default 100; property Minimum: Integer read FMinimum write SetMinimum default 0; ! property ParentColor; ! property ParentFont; property Position: Integer read FPosition write SetPosition default 0; property ShowHint; + property Solid: Boolean read FSolid write SetSolid default False; + property StartColor: TColor read FStartColor write SetStartColor default clWhite; + property Step: Integer read FStep write FStep default 10; + property TextCentered: Boolean read FTextCentered write SetTextCentered default False; + property TextOption: TJvTextOption read FTextOption write SetTextOption default toNoText; property Visible; property OnClick; *************** *** 155,199 **** property OnStartDock; property OnStartDrag; - property HintColor: TColor read FHintColor write FHintColor default clInfoBk; property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter; property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave; ! property OnParentColorChange: TNotifyEvent read FOnParentColorChanged write ! FOnParentColorChanged; end; implementation - uses - JvTypes; ! type ! TControlAccess = class(TControl); ! { TJvSpecialProgress } procedure TJvSpecialProgress.CMParentColorChanged(var Msg: TMessage); begin inherited; ! if Transparent then begin FIsChanged := True; UpdateBuffer; end; - - if Assigned(FOnParentColorChanged) then - FOnParentColorChanged(Self); end; constructor TJvSpecialProgress.Create(AOwner: TComponent); begin ! inherited; FBuffer := TBitmap.Create; - FFont := TFont.Create; - FFont.OnChange := FontChanged; ControlStyle := ControlStyle + [csOpaque]; // SMM 20020604 FHintColor := clInfoBk; FMaximum := 100; FMinimum := 0; - FTransparent := False; FStartColor := clWhite; FStart := clWhite; --- 152,211 ---- property OnStartDock; property OnStartDrag; property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter; property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave; ! property OnParentColorChange: TNotifyEvent read FOnParentColorChange write FOnParentColorChange; end; implementation ! { TJvSpecialProgress } ! procedure TJvSpecialProgress.CMColorChanged(var Msg: TMessage); ! begin ! { No need to call inherited; Repaint is called in UpdateBuffer } ! FIsChanged := True; ! UpdateBuffer; ! end; ! ! procedure TJvSpecialProgress.CMFontChanged(var Msg: TMessage); ! begin ! { No need to call inherited; Repaint is called in UpdateBuffer } ! FBuffer.Canvas.Font := Font; ! ! { Only update if text is visible } ! if TextOption = toNoText then ! Exit; ! ! FIsChanged := True; ! UpdateBuffer; ! end; procedure TJvSpecialProgress.CMParentColorChanged(var Msg: TMessage); begin inherited; ! if Assigned(FOnParentColorChange) then ! FOnParentColorChange(Self); ! end; ! ! procedure TJvSpecialProgress.CMTextChanged(var Msg: TMessage); ! begin ! { No need to call inherited; Repaint is called in UpdateBuffer } ! if TextOption in [toCaption, toFormat] then begin FIsChanged := True; UpdateBuffer; end; end; constructor TJvSpecialProgress.Create(AOwner: TComponent); begin ! inherited Create(AOwner); FBuffer := TBitmap.Create; ControlStyle := ControlStyle + [csOpaque]; // SMM 20020604 + FBorderStyle := bsNone; FHintColor := clInfoBk; FMaximum := 100; FMinimum := 0; FStartColor := clWhite; FStart := clWhite; *************** *** 201,208 **** FEnd := clBlack; FPosition := 0; - FColor := clBtnFace; FSolid := False; ! FTextVisible := False; ! FCentered := False; FGradientBlocks := False; FStep := 10; --- 213,219 ---- FEnd := clBlack; FPosition := 0; FSolid := False; ! FTextOption := toNoText; ! FTextCentered := False; FGradientBlocks := False; FStep := 10; *************** *** 216,233 **** begin FBuffer.Free; ! FFont.Free; ! inherited; ! end; ! ! procedure TJvSpecialProgress.FontChanged(Sender: TObject); ! begin ! Canvas.Font.Assign(FFont); ! ! { Only update if text is visible } ! if not TextVisible then ! Exit; ! ! FIsChanged := True; ! UpdateBuffer; end; --- 227,231 ---- begin FBuffer.Free; ! inherited Destroy; end; *************** *** 251,255 **** FSavedHintColor := Application.HintColor; // for D7... ! if csDesigning in ComponentState then Exit; Application.HintColor := FHintColor; if Assigned(FOnMouseEnter) then --- 249,254 ---- FSavedHintColor := Application.HintColor; // for D7... ! if csDesigning in ComponentState then ! Exit; Application.HintColor := FHintColor; if Assigned(FOnMouseEnter) then *************** *** 282,293 **** Exit; ! if Transparent and Assigned(Parent) then ! FBuffer.Canvas.Brush.Color := TControlAccess(Parent).Color ! else ! FBuffer.Canvas.Brush.Color := FColor; ! ! FBuffer.Canvas.Brush.style := bsSolid; ! FBuffer.Canvas.FillRect(Rect(FTaille + 1, 1, ClientWidth - 1, ClientHeight - ! 1)); end; --- 281,287 ---- Exit; ! FBuffer.Canvas.Brush.Color := Color; ! FBuffer.Canvas.Brush.Style := bsSolid; ! FBuffer.Canvas.FillRect(Rect(FTaille + 1, 1, ClientWidth - 1, ClientHeight - 1)); end; *************** *** 297,301 **** Red, Green, Blue: Real; X: Integer; ! i, j: Integer; LBlockCount: Integer; begin --- 291,295 ---- Red, Green, Blue: Real; X: Integer; ! I, J: Integer; LBlockCount: Integer; begin *************** *** 317,321 **** FBuffer.Canvas.Brush.Color := FStart; FBuffer.Canvas.Brush.Style := bsSolid; ! for i := 0 to LBlockCount - 1 do begin { Width of block is FBlockWidth -1 [-1 for seperator] } --- 311,315 ---- FBuffer.Canvas.Brush.Color := FStart; FBuffer.Canvas.Brush.Style := bsSolid; ! for I := 0 to LBlockCount - 1 do begin { Width of block is FBlockWidth -1 [-1 for seperator] } *************** *** 339,348 **** FBuffer.Canvas.Brush.Style := bsSolid; ! for i := 0 to LBlockCount - 1 do begin if not FGradientBlocks then begin ! FBuffer.Canvas.Brush.Color := RGB(Round(Red), Round(Green), ! Round(Blue)); Red := Red + RedInc * FBlockWidth; Blue := Blue + BlueInc * FBlockWidth; --- 333,341 ---- FBuffer.Canvas.Brush.Style := bsSolid; ! for I := 0 to LBlockCount - 1 do begin if not FGradientBlocks then begin ! FBuffer.Canvas.Brush.Color := RGB(Round(Red), Round(Green), Round(Blue)); Red := Red + RedInc * FBlockWidth; Blue := Blue + BlueInc * FBlockWidth; *************** *** 354,365 **** begin { Fill the progressbar with slices of 1 width } ! for j := 0 to FBlockWidth - 2 do begin ! FBuffer.Canvas.Brush.Color := RGB(Round(Red), Round(Green), ! Round(Blue)); Red := Red + RedInc; Blue := Blue + BlueInc; Green := Green + GreenInc; ! FBuffer.Canvas.FillRect(Bounds(X + j, 1, 1, ClientHeight - 2)); end; { Seperator is not filled, but increase the colors } --- 347,357 ---- begin { Fill the progressbar with slices of 1 width } ! for J := 0 to FBlockWidth - 2 do begin ! FBuffer.Canvas.Brush.Color := RGB(Round(Red), Round(Green), Round(Blue)); Red := Red + RedInc; Blue := Blue + BlueInc; Green := Green + GreenInc; ! FBuffer.Canvas.FillRect(Bounds(X + J, 1, 1, ClientHeight - 2)); end; { Seperator is not filled, but increase the colors } *************** *** 374,379 **** if not FGradientBlocks then begin ! FBuffer.Canvas.Brush.Color := RGB(Round(Red), Round(Green), ! Round(Blue)); { Width of last block is FLastBlockWidth [no seperator] } FBuffer.Canvas.FillRect(Bounds(X, 1, FLastBlockWidth, ClientHeight - 2)); --- 366,370 ---- if not FGradientBlocks then begin ! FBuffer.Canvas.Brush.Color := RGB(Round(Red), Round(Green), Round(Blue)); { Width of last block is FLastBlockWidth [no seperator] } FBuffer.Canvas.FillRect(Bounds(X, 1, FLastBlockWidth, ClientHeight - 2)); *************** *** 381,392 **** else { Width of last block is FLastBlockWidth [no seperator] } ! for j := 0 to FLastBlockWidth - 1 do begin ! FBuffer.Canvas.Brush.Color := RGB(Round(Red), Round(Green), ! Round(Blue)); Red := Red + RedInc; Blue := Blue + BlueInc; Green := Green + GreenInc; ! FBuffer.Canvas.FillRect(Bounds(X + j, 1, 1, ClientHeight - 2)); end; end; --- 372,382 ---- else { Width of last block is FLastBlockWidth [no seperator] } ! for J := 0 to FLastBlockWidth - 1 do begin ! FBuffer.Canvas.Brush.Color := RGB(Round(Red), Round(Green), Round(Blue)); Red := Red + RedInc; Blue := Blue + BlueInc; Green := Green + GreenInc; ! FBuffer.Canvas.FillRect(Bounds(X + J, 1, 1, ClientHeight - 2)); end; end; *************** *** 395,403 **** { Draw the block seperators } X := FBlockWidth; ! if Transparent and Assigned(Parent) then ! FBuffer.Canvas.Brush.Color := TControlAccess(Parent).Color ! else ! FBuffer.Canvas.Brush.Color := FColor; ! for i := 0 to LBlockCount - 1 do begin FBuffer.Canvas.FillRect(Bounds(X, 1, 1, ClientHeight - 2)); --- 385,390 ---- { Draw the block seperators } X := FBlockWidth; ! FBuffer.Canvas.Brush.Color := Color; ! for I := 0 to LBlockCount - 1 do begin FBuffer.Canvas.FillRect(Bounds(X, 1, 1, ClientHeight - 2)); *************** *** 407,416 **** procedure TJvSpecialProgress.PaintRectangle; begin ! if Transparent and Assigned(Parent) then ! FBuffer.Canvas.Brush.Color := TControlAccess(Parent).Color else ! FBuffer.Canvas.Brush.Color := FColor; ! FBuffer.Canvas.FrameRect(Rect(0, 0, ClientWidth, ClientHeight)); end; --- 394,412 ---- procedure TJvSpecialProgress.PaintRectangle; + var + Rect: TRect; begin ! Rect := ClientRect; ! if BorderStyle = bsNone then ! begin ! FBuffer.Canvas.Brush.Color; ! FBuffer.Canvas.FrameRect(Rect); ! end else ! begin ! Frame3d(FBuffer.Canvas, Rect, clBtnFace, clBtnFace, 1); ! Frame3d(FBuffer.Canvas, Rect, clBtnShadow, clBtnHighlight, 1); ! Frame3d(FBuffer.Canvas, Rect, cl3DDkShadow, clBtnFace, 1); ! end; end; *************** *** 418,422 **** var RedInc, BlueInc, GreenInc: Real; ! i: Integer; begin if FTaille = 0 then --- 414,418 ---- var RedInc, BlueInc, GreenInc: Real; ! I: Integer; begin if FTaille = 0 then *************** *** 437,447 **** FBuffer.Canvas.Brush.Style := bsSolid; { Fill the progressbar with slices of 1 width } ! for i := 1 to FTaille do begin FBuffer.Canvas.Brush.Color := RGB( ! Round(GetRValue(FStart) + ((i - 1) * RedInc)), ! Round(GetGValue(FStart) + ((i - 1) * GreenInc)), ! Round(GetBValue(FStart) + ((i - 1) * BlueInc))); ! FBuffer.Canvas.FillRect(Rect(i, 1, i + 1, ClientHeight - 1)); end; end; --- 433,443 ---- FBuffer.Canvas.Brush.Style := bsSolid; { Fill the progressbar with slices of 1 width } ! for I := 1 to FTaille do begin FBuffer.Canvas.Brush.Color := RGB( ! Round(GetRValue(FStart) + ((I - 1) * RedInc)), ! Round(GetGValue(FStart) + ((I - 1) * GreenInc)), ! Round(GetBValue(FStart) + ((I - 1) * BlueInc))); ! FBuffer.Canvas.FillRect(Rect(I, 1, I + 1, ClientHeight - 1)); end; end; *************** *** 454,463 **** LTaille: Integer; begin ! if not TextVisible then Exit; ! ! FBuffer.Canvas.Font := TextFont; ! ! S := Format('%d%%', [PercentDone]); if TextCentered then --- 450,463 ---- LTaille: Integer; begin ! case TextOption of ! toPercent: ! S := Format('%d%%', [PercentDone]); ! toFormat: ! S := Format(Caption, [PercentDone]); ! toCaption: ! S := Caption; ! else {toNoText} Exit; ! end; if TextCentered then *************** *** 480,502 **** end; ! procedure TJvSpecialProgress.SetCentered(const Value: Boolean); ! begin ! if FCentered <> Value then ! begin ! FCentered := Value; ! ! FIsChanged := True; ! UpdateBuffer; ! end; ! end; ! ! procedure TJvSpecialProgress.SetColor(const Value: TColor); begin ! if FColor <> Value then begin ! FColor := Value; ! ! if Transparent then ! Exit; FIsChanged := True; --- 480,488 ---- end; ! procedure TJvSpecialProgress.SetBorderStyle(Value: TBorderStyle); begin ! if FBorderStyle <> Value then begin ! FBorderStyle := Value; FIsChanged := True; *************** *** 511,514 **** --- 497,501 ---- FEndColor := Value; FEnd := ColorToRGB(FEndColor); + FIsChanged := True; UpdateBuffer; *************** *** 516,530 **** end; - procedure TJvSpecialProgress.SetFont(const Value: TFont); - begin - FFont.Assign(Value); - - if not FTextVisible then - Exit; - - FIsChanged := True; - UpdateBuffer; - end; - procedure TJvSpecialProgress.SetGradientBlocks(const Value: Boolean); begin --- 503,506 ---- *************** *** 542,550 **** procedure TJvSpecialProgress.SetMaximum(const Value: Integer); var ! FOldPercentageDone: Integer; begin if FMaximum <> Value then begin ! FOldPercentageDone := GetPercentDone; FMaximum := Value; --- 518,526 ---- procedure TJvSpecialProgress.SetMaximum(const Value: Integer); var ! OldPercentageDone: Integer; begin if FMaximum <> Value then begin ! OldPercentageDone := GetPercentDone; FMaximum := Value; *************** *** 556,560 **** { If the percentage has changed we must update, otherwise check in UpdateTaille if we must update } ! FIsChanged := TextVisible and (FOldPercentageDone <> GetPercentDone); UpdateTaille; UpdateBuffer; --- 532,536 ---- { If the percentage has changed we must update, otherwise check in UpdateTaille if we must update } ! FIsChanged := (TextOption in [toPercent, toFormat]) and (OldPercentageDone <> GetPercentDone); UpdateTaille; UpdateBuffer; *************** *** 564,572 **** procedure TJvSpecialProgress.SetMinimum(const Value: Integer); var ! FOldPercentageDone: Integer; begin if FMinimum <> Value then begin ! FOldPercentageDone := GetPercentDone; FMinimum := Value; --- 540,548 ---- procedure TJvSpecialProgress.SetMinimum(const Value: Integer); var ! OldPercentageDone: Integer; begin if FMinimum <> Value then begin ! OldPercentageDone := GetPercentDone; FMinimum := Value; *************** *** 578,582 **** { If the percentage has changed we must update, otherwise check in UpdateTaille if we must update } ! FIsChanged := TextVisible and (FOldPercentageDone <> GetPercentDone); UpdateTaille; UpdateBuffer; --- 554,558 ---- { If the percentage has changed we must update, otherwise check in UpdateTaille if we must update } ! FIsChanged := (TextOption in [toPercent, toFormat]) and (OldPercentageDone <> GetPercentDone); UpdateTaille; UpdateBuffer; *************** *** 586,594 **** procedure TJvSpecialProgress.SetPosition(const Value: Integer); var ! FOldPercentageDone: Integer; begin if FPosition <> Value then begin ! FOldPercentageDone := GetPercentDone; FPosition := Value; --- 562,570 ---- procedure TJvSpecialProgress.SetPosition(const Value: Integer); var ! OldPercentageDone: Integer; begin if FPosition <> Value then begin ! OldPercentageDone := GetPercentDone; FPosition := Value; *************** *** 600,604 **** { If the percentage has changed we must update, otherwise check in UpdateTaille if we must update } ! FIsChanged := TextVisible and (FOldPercentageDone <> GetPercentDone); UpdateTaille; UpdateBuffer; --- 576,580 ---- { If the percentage has changed we must update, otherwise check in UpdateTaille if we must update } ! FIsChanged := (TextOption in [toPercent, toFormat]) and (OldPercentageDone <> GetPercentDone); UpdateTaille; UpdateBuffer; *************** *** 624,627 **** --- 600,604 ---- FStartColor := Value; FStart := ColorToRGB(FStartColor); + FIsChanged := True; UpdateBuffer; *************** *** 629,648 **** end; ! procedure TJvSpecialProgress.SetTextVisible(const Value: Boolean); begin ! if FTextVisible <> Value then begin ! FTextVisible := Value; ! FIsChanged := True; ! UpdateBuffer; end; end; ! procedure TJvSpecialProgress.SetTransparent(const Value: Boolean); begin ! if FTransparent <> Value then begin ! FTransparent := Value; FIsChanged := True; --- 606,628 ---- end; ! procedure TJvSpecialProgress.SetTextCentered(const Value: Boolean); begin ! if FTextCentered <> Value then begin ! FTextCentered := Value; ! if TextOption <> toNoText then ! begin ! FIsChanged := True; ! UpdateBuffer; ! end; end; end; ! procedure TJvSpecialProgress.SetTextOption(const Value: TJvTextOption); begin ! if FTextOption <> Value then begin ! FTextOption := Value; FIsChanged := True; *************** *** 671,675 **** FBuffer.Width := ClientWidth; FBuffer.Height := ClientHeight; - FBuffer.Canvas.Brush.Color := Color; if FSolid then --- 651,654 ---- *************** *** 681,684 **** --- 660,664 ---- PaintText; PaintRectangle; + Repaint; end; *************** *** 697,702 **** { Max width of the progressbar is ClientWidth -2 [-2 for the border], NewTaille specifies the new length of the progressbar } ! NewTaille := (ClientWidth - 2) * (FPosition - FMinimum) div (FMaximum - ! FMinimum); if not FSolid then begin --- 677,681 ---- { Max width of the progressbar is ClientWidth -2 [-2 for the border], NewTaille specifies the new length of the progressbar } ! NewTaille := (ClientWidth - 2) * (FPosition - FMinimum) div (FMaximum - FMinimum); if not FSolid then begin |