Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- type
- T... = class(TCustomWizForm)
- FQuitState: IAuthState;
- FQuitStateIntended: IAuthState;
- end;
- --8<--
- procedure ....DoFormCloseQuery(Sender: TObject; var CanClose: Boolean);
- begin
- if not ... then
- begin
- // возвращаться некуда
- CanClose := True;
- if Assigned(FQuitState) then
- ModalResult := FQuitState.ModalResult;
- ...
- if GoingToQuit then
- Exit;
- // показать предупреждение:
- if not Assigned(FQuitStateIntended) then
- FQuitStateIntended := TAuthQuitState.Create;
- SetQuitStateFromIntended;
- Wizard.GotoPage(PageQuit.PageIndex);
- ...
- end;
- procedure ....btnSkipPeriodClick(Sender: TObject);
- begin
- Close;
- FQuitStateIntended := TSkipState.Create;
- end;
- procedure ....DoPageEnter(Sender: TObject; Index: Integer;
- const Title: string);
- ...
- begin
- ...
- ...
- FrHeader.InfoText(FQuitState.Header);
- ...
- if Assigned(FQuitState) then
- lblCancel.Caption := FQuitState.Question;
- ...
- end;
- --8<--
- type
- IAuthState = interface
- ['{AB1FB344-54A4-452A-82E7-F337CE4FD376}']
- function Header: string;
- function ModalResult: Integer;
- function Question: string;
- end;
- --8<--
- type
- TAuthQuitState = class(TInterfacedObject, IAuthState)
- {$REGION 'IAuthState'}
- function Header: string;
- function ModalResult: Integer;
- function Question: string;
- {$ENDREGION}
- end;
- TSkipState = class(TInterfacedObject, IAuthState)
- {$REGION 'IAuthState'}
- function Header: string;
- function ModalResult: Integer;
- function Question: string;
- {$ENDREGION}
- end;
- ...
- { TAuthQuitState }
- function TAuthQuitState.Header: string;
- begin
- Result := 'Отмена загрузки данных';
- end;
- function TAuthQuitState.ModalResult: Integer;
- begin
- Result := mrCancel;
- end;
- function TAuthQuitState.Question: string;
- begin
- Result := 'Вы действительно хотите отменить загрузку начислений и детализаций?';
- end;
- { TSkipState }
- function TSkipState.Header: string;
- begin
- Result := 'Пропуск загрузки данных';
- end;
- function TSkipState.ModalResult: Integer;
- begin
- Result := mrIgnore;
- end;
- function TSkipState.Question: string;
- begin
- Result := 'Вы действительно хотите пропустить загрузку начислений и детализаций?';
- end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement