Advertisement
Guest User

Untitled

a guest
Apr 8th, 2020
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 2.45 KB | None | 0 0
  1. type
  2.   T... = class(TCustomWizForm)
  3.     FQuitState: IAuthState;
  4.     FQuitStateIntended: IAuthState;
  5.   end;
  6.  
  7. --8<--
  8.  
  9. procedure ....DoFormCloseQuery(Sender: TObject; var CanClose: Boolean);
  10. begin
  11.   if not ... then
  12.   begin
  13.     // возвращаться некуда
  14.     CanClose := True;
  15.     if Assigned(FQuitState) then
  16.       ModalResult := FQuitState.ModalResult;
  17. ...
  18.     if GoingToQuit then
  19.       Exit;
  20.     // показать предупреждение:
  21.     if not Assigned(FQuitStateIntended) then
  22.       FQuitStateIntended := TAuthQuitState.Create;
  23.     SetQuitStateFromIntended;
  24.     Wizard.GotoPage(PageQuit.PageIndex);
  25. ...
  26. end;
  27.  
  28. procedure ....btnSkipPeriodClick(Sender: TObject);
  29. begin
  30.   Close;
  31.   FQuitStateIntended := TSkipState.Create;
  32. end;
  33.  
  34. procedure ....DoPageEnter(Sender: TObject; Index: Integer;
  35.   const Title: string);
  36. ...
  37. begin
  38. ...
  39. ...
  40.     FrHeader.InfoText(FQuitState.Header);
  41. ...
  42.     if Assigned(FQuitState) then
  43.       lblCancel.Caption := FQuitState.Question;
  44. ...
  45. end;
  46.  
  47. --8<--
  48. type
  49.   IAuthState = interface
  50.     ['{AB1FB344-54A4-452A-82E7-F337CE4FD376}']
  51.     function Header: string;
  52.     function ModalResult: Integer;
  53.     function Question: string;
  54.   end;
  55. --8<--
  56.  
  57. type
  58.   TAuthQuitState = class(TInterfacedObject, IAuthState)
  59.     {$REGION 'IAuthState'}
  60.     function Header: string;
  61.     function ModalResult: Integer;
  62.     function Question: string;
  63.     {$ENDREGION}
  64.   end;
  65.  
  66.   TSkipState = class(TInterfacedObject, IAuthState)
  67.     {$REGION 'IAuthState'}
  68.     function Header: string;
  69.     function ModalResult: Integer;
  70.     function Question: string;
  71.     {$ENDREGION}
  72.   end;
  73.  
  74. ...
  75.  
  76. { TAuthQuitState }
  77.  
  78. function TAuthQuitState.Header: string;
  79. begin
  80.   Result := 'Отмена загрузки данных';
  81. end;
  82.  
  83. function TAuthQuitState.ModalResult: Integer;
  84. begin
  85.   Result := mrCancel;
  86. end;
  87.  
  88. function TAuthQuitState.Question: string;
  89. begin
  90.   Result := 'Вы действительно хотите отменить загрузку начислений и детализаций?';
  91. end;
  92.  
  93. { TSkipState }
  94.  
  95. function TSkipState.Header: string;
  96. begin
  97.   Result := 'Пропуск загрузки данных';
  98. end;
  99.  
  100. function TSkipState.ModalResult: Integer;
  101. begin
  102.   Result := mrIgnore;
  103. end;
  104.  
  105. function TSkipState.Question: string;
  106. begin
  107.   Result := 'Вы действительно хотите пропустить загрузку начислений и детализаций?';
  108. end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement