home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 39 / IOPROG_39.ISO / SOFT / vbasic / xceedzip.exe / 16-bit / Samples / Delphi1 / SFXFM.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1999-11-18  |  4.0 KB  |  153 lines

  1. unit Sfxfm;
  2.  
  3. interface
  4.  
  5. uses
  6.   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  7.   Forms, Dialogs, StdCtrls,XceedZip;
  8.  
  9. type
  10.   TfrmConfigSFX = class(TForm)
  11.     Label1: TLabel;
  12.     Label2: TLabel;
  13.     Label3: TLabel;
  14.     Label4: TLabel;
  15.     txtSFXBinaryPath: TEdit;
  16.     txtSFXDialogTitle: TEdit;
  17.     txtSFXExitButton: TEdit;
  18.     cmdSFXBinary: TButton;
  19.     cmdCancel: TButton;
  20.     cmdOK: TButton;
  21.     dlgOpenSFXBinary: TOpenDialog;
  22.     txtSFXIntroMessage: TMemo;
  23.     procedure DisplayCurrentSfxProperties;
  24.     procedure UpdateSfxProperties;
  25.     procedure txtSFXBinaryPathChange(Sender: TObject);
  26.     procedure txtSFXDialogTitleChange(Sender: TObject);
  27.     procedure txtSFXExitButtonChange(Sender: TObject);
  28.     procedure txtSFXIntroMessageChange(Sender: TObject);
  29.     procedure cmdOKClick(Sender: TObject);
  30.     procedure cmdCancelClick(Sender: TObject);
  31.     procedure cmdSFXBinaryClick(Sender: TObject);
  32.     procedure FormActivate(Sender: TObject);
  33.     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  34.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  35.   private
  36.     { Private declarations }
  37.   public
  38.     { Public declarations }
  39.     change: bool;
  40.   end;
  41.  
  42. var
  43.   frmConfigSFX: TfrmConfigSFX;
  44.  
  45. implementation
  46.  
  47. {$R *.DFM}
  48. Uses Mainfm;
  49.  
  50. procedure TfrmConfigSFX.UpdateSfxProperties;
  51. begin
  52.  
  53.   MainFormFM.MainXZ.SfxMessages[xsmIntro] := frmConfigSFX.txtSFXIntroMessage.Text;
  54.   MainFormFM.MainXZ.SfxButtons[xsbExit] := frmConfigSFX.txtSFXExitButton.Text;
  55.   MainFormFM.MainXZ.SfxStrings[xssTitle] := frmConfigSFX.txtSFXDialogTitle.Text;
  56.   MainFormFM.MainXZ.SfxBinary := frmConfigSFX.txtSFXbinaryPath.Text;
  57.  
  58.   frmConfigSFX.Change := False;
  59.  
  60. end;
  61.  
  62. procedure TfrmConfigSFX.txtSFXBinaryPathChange(Sender: TObject);
  63. begin
  64.      change := True;
  65. end;
  66.  
  67. procedure TfrmConfigSFX.txtSFXDialogTitleChange(Sender: TObject);
  68. begin
  69.      change := True;
  70. end;
  71.  
  72. procedure TfrmConfigSFX.txtSFXExitButtonChange(Sender: TObject);
  73. begin
  74.      change := True;
  75. end;
  76.  
  77. procedure TfrmConfigSFX.txtSFXIntroMessageChange(Sender: TObject);
  78. begin
  79.      change := True;
  80. end;
  81.  
  82. procedure TfrmConfigSFX.cmdOKClick(Sender: TObject);
  83. begin
  84.      UpdateSfxProperties;
  85.      frmConfigSfx.Close;
  86. end;
  87.  
  88. procedure TfrmConfigSFX.cmdCancelClick(Sender: TObject);
  89. begin
  90.      change := False;
  91.      frmConfigSfx.close;
  92.  
  93. end;
  94.  
  95. procedure TfrmConfigSFX.cmdSFXBinaryClick(Sender: TObject);
  96. begin
  97.  
  98.     frmConfigSFX.dlgOpenSFXBinary.FileName := '';
  99.     if frmConfigSFX.dlgOpenSFXBinary.Execute then
  100.       begin
  101.             frmConfigSFX.txtSFXBinaryPath.Text := frmConfigSFX.dlgOpenSFXBinary.FileName;
  102.       end;
  103. end;
  104.  
  105. procedure TfrmConfigSFX.FormActivate(Sender: TObject);
  106. begin
  107.        frmConfigSFX.DisplayCurrentSfxProperties;
  108. end;
  109.  
  110. procedure TfrmConfigSFX.DisplayCurrentSfxProperties;
  111. begin
  112.        frmConfigSFX.txtSFXIntroMessage.Text := MainFormFM.MainXZ.SfxMessages[xsmIntro];
  113.        frmConfigSFX.txtSFXDialogTitle.Text := MainFormFM.MainXZ.SfxStrings[xssTitle];
  114.        frmConfigSFX.txtSFXExitButton.Text := MainFormFM.MainXZ.SfxButtons[xsbExit];
  115.        frmConfigSFX.txtSFXbinaryPath.Text := MainFormFM.MainXZ.SfxBinary;
  116.        change := False;
  117. end;
  118. procedure TfrmConfigSFX.FormCloseQuery(Sender: TObject;
  119.   var CanClose: Boolean);
  120. var
  121.    UserAnswer: Word;
  122. begin
  123.  
  124.   if Change Then
  125.   begin
  126.     UserAnswer := MessageDlg('Do you want to discard the changes?', mtConfirmation,mbYesNoCancel,0);
  127.     Case UserAnswer of
  128.       mrNo:
  129.         UpdateSfxProperties;
  130.       mrCancel:
  131.         CanClose := False;
  132.     end;
  133.   end;
  134. end;
  135.  
  136. procedure TfrmConfigSFX.FormClose(Sender: TObject;
  137.   var Action: TCloseAction);
  138. var
  139.    aMessage: String;
  140. begin
  141.  
  142.   aMessage := 'The self-extractor dialog box only lets you configure a tiny portion '+
  143.               'of the self-extractor''s settings. Look in the SetSfxConfiguration '+
  144.               'procedure for a complete list of settings you can configure.' + Chr(13);
  145.  
  146.   MessageDlg (aMessage, mtInformation, [mbOK],0);
  147.  
  148. end;
  149.  
  150.  
  151.  
  152. end.
  153.