📄 progress.pas
字号:
unit Progress;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls;
type
TfrmProgress = class(TForm)
ProgressBar: TProgressBar;
btnStop: TButton;
lblMessage: TLabel;
procedure btnStopClick(Sender: TObject);
private
FOnStop: TNotifyEvent;
protected
procedure CreateParams(var Params: TCreateParams); override;
public
procedure SendProgress(AMessageCount: Integer);
procedure RetrProgress(AMessageCount: Integer);
procedure SetupProgress(AMessageCount: Integer);
procedure StepProgress;
property OnStop: TNotifyEvent read FOnStop write FOnStop;
end;
implementation
{$R *.dfm}
{ TfrmProgress }
procedure TfrmProgress.RetrProgress(AMessageCount: Integer);
begin
lblMessage.Caption := 'Retrieve Messages';
SetupProgress(AMessageCount);
Show();
end;
procedure TfrmProgress.SendProgress(AMessageCount: Integer);
begin
lblMessage.Caption := 'Send Message';
SetupProgress(AMessageCount);
Show();
end;
procedure TfrmProgress.StepProgress;
begin
ProgressBar.StepIt();
Application.ProcessMessages();
end;
procedure TfrmProgress.btnStopClick(Sender: TObject);
begin
if Assigned(OnStop) then
begin
OnStop(Self);
end;
end;
procedure TfrmProgress.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
if (Screen.ActiveCustomForm <> nil) then
begin
Params.WndParent := Screen.ActiveCustomForm.Handle;
end;
end;
procedure TfrmProgress.SetupProgress(AMessageCount: Integer);
begin
ProgressBar.Max := AMessageCount;
ProgressBar.Position := 0;
Application.ProcessMessages();
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -