1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
|
unit Progress;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, TntForms,
Dialogs, ComCtrls,TntComCtrls, TntStdCtrls, AuxFuncs, StdCtrls, Forms;
type
TProgressForm = class(TTntForm)
ProgressGBox: TTntGroupBox;
StoppingLbl: TTntLabel;
StopBtn: TTntButton;
ActionCaptionLbl: TTntLabel;
ActionLbl: TTntLabel;
InternalProgressBar: TTntProgressBar;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure StopBtnClick(Sender: TObject);
private
function GetMax: Integer;
procedure SetMax(const Value: Integer);
public
Stopping: Boolean;
procedure Advance(Amount: Integer; Relative: Boolean);
procedure Reset;
property Max: Integer read GetMax write SetMax;
end;
var
ProgressForm: TProgressForm;
implementation
{$R *.dfm}
procedure TProgressForm.FormCreate(Sender: TObject);
begin
InitForm(self);
Stopping:=False;
end;
procedure TProgressForm.FormDestroy(Sender: TObject);
begin
//
end;
function TProgressForm.GetMax: Integer;
begin
Result := InternalProgressbar.Max;
end;
procedure TProgressForm.Reset;
begin
InternalProgressBar.Position := 0;
end;
procedure TProgressForm.Advance(Amount: Integer; Relative: Boolean);
var
NewValue: Integer;
begin
if Relative then
NewValue := InternalProgressBar.Position + Amount
else
NewValue := Amount;
if InternalProgressBar.Position <> NewValue then
begin
InternalProgressBar.Position := NewValue;
InternalProgressBar.Update;
end;
end;
procedure TProgressForm.SetMax(const Value: Integer);
begin
InternalProgressbar.Max := Value;
end;
procedure TProgressForm.StopBtnClick(Sender: TObject);
begin
StoppingLbl.Visible:=True;
Stopping:=True;
end;
end.
|