天天看點

inno setup InitializeWizard初始化向導學習(三)

釋放圖檔到臨時目錄:

[Files]

Source: "tmp\*"; DestDir: {tmp}; Flags: dontcopy solidbreak;

//釋放需要的臨時資源檔案

PROCEDURE extract_temp_files();

BEGIN

  ExtractTemporaryFile('button_customize_setup.png');

  ExtractTemporaryFile('button_uncustomize_setup.png');

  ExtractTemporaryFile('button_finish.png');

  ExtractTemporaryFile('button_setup_or_next.png');

  ExtractTemporaryFile('background_welcome.png');

  ExtractTemporaryFile('background_welcome_more.png');

  ExtractTemporaryFile('button_browse.png');

  ExtractTemporaryFile('progressbar_background.png');

  ExtractTemporaryFile('progressbar_foreground.png');

  ExtractTemporaryFile('button_license.png');

  ExtractTemporaryFile('checkbox_license.png');

  ExtractTemporaryFile('checkbox_setdefault.png');

  ExtractTemporaryFile('background_installing.png');

  ExtractTemporaryFile('background_finish.png');

  ExtractTemporaryFile('button_close.png');

  ExtractTemporaryFile('button_minimize.png');

  ExtractTemporaryFile('background_messagebox.png');

  ExtractTemporaryFile('button_cancel.png');

  ExtractTemporaryFile('button_ok.png');

END;

//主界面關閉按鈕按下時執行的腳本

PROCEDURE button_close_on_click(hBtn : HWND);

BEGIN

  WizardForm.CancelButton.OnClick(WizardForm);

END;

procedure InitializeWizard();//初始化安裝向導界面

begin

  //釋放臨時資源檔案

  extract_temp_files();

  WizardForm.InnerNotebook.Hide();

  WizardForm.OuterNotebook.Hide();

  WizardForm.Bevel.Hide();

  //初始界面為空白

  WITH WizardForm DO

  BEGIN

    BorderStyle := bsNone;

    Position := poDesktopCenter;

    Width := WIZARDFORM_WIDTH_NORMAL;

    Height := WIZARDFORM_HEIGHT_MORE;

    Color := clWhite;

    NextButton.Height := 0;

    CancelButton.Height := 0;

    BackButton.Visible := FALSE;

  END;

  ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\background_welcome.png'),0,0,650,450,false,true);

  button_close := BtnCreate(WizardForm.Handle, 570, 0, 30, 30, ExpandConstant('{tmp}\button_close.png'), 0, FALSE);

  BtnSetEvent(button_close, ID_BUTTON_ON_CLICK_EVENT, WrapBtnCallback(@button_close_on_click, 1));

  ImgApplyChanges(WizardForm.Handle);

end;

//安裝程式銷毀時會調用這個函數

PROCEDURE DeinitializeSetup();

BEGIN

  gdipShutdown();

  WizardForm.Release();

END;

繼續閱讀