📄 jvqwizard.pas
字号:
property Visible;
end;
implementation
uses
{$IFDEF UNITVERSIONING}
JclUnitVersioning,
{$ENDIF UNITVERSIONING}
JvQResources,
QConsts;
const
ciButtonWidth = 75;
ciButtonHeight = 25;
ciButtonBarHeight = 42;
ciButtonPlacement = (ciButtonBarHeight - ciButtonHeight) div 2;
type
// (ahuser) introduced for refactoring the WizardButtons
TJvWizardBaseButton = class(TJvWizardButtonControl)
protected
procedure ButtonClick(Page: TJvWizardCustomPage; var Stop: Boolean); virtual;
procedure SelectPage; virtual;
public
procedure Click; override;
end;
{ YW - First Button }
TJvWizardStartButton = class(TJvWizardBaseButton)
protected
procedure ButtonClick(Page: TJvWizardCustomPage; var Stop: Boolean); override;
procedure SelectPage; override;
public
constructor Create(AOwner: TComponent); override;
end;
{ YW - Last Button }
TJvWizardLastButton = class(TJvWizardBaseButton)
protected
procedure ButtonClick(Page: TJvWizardCustomPage; var Stop: Boolean); override;
procedure SelectPage; override;
public
constructor Create(AOwner: TComponent); override;
end;
{ YW - Back Button }
TJvWizardBackButton = class(TJvWizardBaseButton)
protected
procedure ButtonClick(Page: TJvWizardCustomPage; var Stop: Boolean); override;
procedure SelectPage; override;
public
constructor Create(AOwner: TComponent); override;
end;
{ YW - Next Button }
TJvWizardNextButton = class(TJvWizardBaseButton)
protected
procedure ButtonClick(Page: TJvWizardCustomPage; var Stop: Boolean); override;
procedure SelectPage; override;
public
constructor Create(AOwner: TComponent); override;
end;
{ YW - Finish Button }
TJvWizardFinishButton = class(TJvWizardBaseButton)
protected
procedure ButtonClick(Page: TJvWizardCustomPage; var Stop: Boolean); override;
public
constructor Create(AOwner: TComponent); override;
end;
{ YW - Cancel Button }
TJvWizardCancelButton = class(TJvWizardBaseButton)
protected
procedure ButtonClick(Page: TJvWizardCustomPage; var Stop: Boolean); override;
public
constructor Create(AOwner: TComponent); override;
end;
{ YW - Help Button }
TJvWizardHelpButton = class(TJvWizardBaseButton)
protected
procedure ButtonClick(Page: TJvWizardCustomPage; var Stop: Boolean); override;
public
constructor Create(AOwner: TComponent); override;
procedure Click; override;
end;
//=== { TJvWizardButtonControl } =============================================
constructor TJvWizardButtonControl.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
if csDesigning in ComponentState then
begin
{ !!! YW - Add csClickEvents in order to fired the Click method
at design time. It does NOT need at run time, otherwise it cause
the OnClick event to be called twice. }
ControlStyle := ControlStyle + [csClickEvents];
ControlStyle := ControlStyle + [csNoDesignVisible];
end;
Kind := bkCustom;
Anchors := [akRight, akBottom];
end;
procedure TJvWizardButtonControl.VisibleChanged;
begin
inherited VisibleChanged;
if Assigned(FWizard) then
FWizard.RepositionButtons;
end;
//=== { TJvWizardBaseButton } ================================================
procedure TJvWizardBaseButton.Click;
var
Stop: Boolean;
Page: TJvWizardCustomPage;
begin
if Assigned(FWizard) then
begin
if not (csDesigning in ComponentState) then
begin
Stop := False;
Page := FWizard.FActivePage;
if Assigned(Page) then
ButtonClick(Page, Stop);
if Stop then
Exit;
inherited Click;
end;
SelectPage;
end;
end;
procedure TJvWizardBaseButton.SelectPage;
begin
// default action: nothing
end;
procedure TJvWizardBaseButton.ButtonClick(Page: TJvWizardCustomPage; var Stop: Boolean);
begin
// do nothing (make Delphi 5 compiler happy)
end;
//=== { TJvWizardStartButton } ===============================================
constructor TJvWizardStartButton.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
Caption := RsFirstButtonCaption;
Visible := False;
Anchors := [akLeft, akBottom];
Width := ciButtonWidth + 10;
Alignment := alLeft;
end;
procedure TJvWizardStartButton.ButtonClick(Page: TJvWizardCustomPage; var Stop: Boolean);
begin
inherited ButtonClick(Page, Stop);
if Assigned(Page.FOnStartButtonClick) then
Page.FOnStartButtonClick(Page, Stop);
end;
procedure TJvWizardStartButton.SelectPage;
begin
FWizard.SelectFirstPage;
end;
//=== { TJvWizardLastButton } ================================================
constructor TJvWizardLastButton.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
Caption := RsLastButtonCaption;
Visible := False;
Anchors := [akLeft, akBottom];
Width := ciButtonWidth + 10;
Alignment := alLeft;
end;
procedure TJvWizardLastButton.ButtonClick(Page: TJvWizardCustomPage; var Stop: Boolean);
begin
if Assigned(Page.FOnLastButtonClick) then
Page.FOnLastButtonClick(Page, Stop);
end;
procedure TJvWizardLastButton.SelectPage;
begin
FWizard.SelectLastPage;
end;
//=== { TJvWizardBackButton } ================================================
constructor TJvWizardBackButton.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
Caption := RsBackButtonCaption;
Enabled := False;
Visible := True;
Width := ciButtonWidth;
Alignment := alRight;
end;
procedure TJvWizardBackButton.ButtonClick(Page: TJvWizardCustomPage; var Stop: Boolean);
begin
if Assigned(Page.FOnBackButtonClick) then
Page.FOnBackButtonClick(Page, Stop);
end;
procedure TJvWizardBackButton.SelectPage;
begin
FWizard.SelectPriorPage;
end;
//=== { TJvWizardNextButton } ================================================
constructor TJvWizardNextButton.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
Caption := RsNextButtonCaption;
Enabled := False;
Visible := True;
Width := ciButtonWidth;
Alignment := alRight;
end;
procedure TJvWizardNextButton.ButtonClick(Page: TJvWizardCustomPage; var Stop: Boolean);
begin
if Assigned(Page.FOnNextButtonClick) then
Page.FOnNextButtonClick(Page, Stop);
end;
procedure TJvWizardNextButton.SelectPage;
begin
FWizard.SelectNextPage;
end;
//=== { TJvWizardFinishButton } ==============================================
constructor TJvWizardFinishButton.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
Caption := RsFinishButtonCaption;
Visible := False;
Width := ciButtonWidth;
Alignment := alRight;
end;
procedure TJvWizardFinishButton.ButtonClick(Page: TJvWizardCustomPage; var Stop: Boolean);
begin
if Assigned(Page.FOnFinishButtonClick) then
Page.FOnFinishButtonClick(Page, Stop);
end;
//=== { TJvWizardCancelButton } ==============================================
constructor TJvWizardCancelButton.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
Caption := SCancelButton;
Visible := True;
Cancel := True;
Width := ciButtonWidth;
Alignment := alRight;
ModalResult := mrCancel;
end;
procedure TJvWizardCancelButton.ButtonClick(Page: TJvWizardCustomPage; var Stop: Boolean);
begin
if Assigned(Page.FOnCancelButtonClick) then
Page.FOnCancelButtonClick(Page, Stop);
end;
//=== { TJvWizardHelpButton } ================================================
constructor TJvWizardHelpButton.Create(AOwner: TComponent); // Added by Theodore
begin
inherited Create(AOwner);
Caption := SHelpButton;
Visible := False;
Anchors := [akLeft, akBottom];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -