2012-06-21 32 views
5

我已經創建了一個帶有圖像的自定義歡迎頁面,但頂部的主面板仍將顯示。對於什麼,我想達到以下見圖片:如何隱藏主面板並在整個頁面上顯示圖像?

enter image description here

下面是代碼:

[Code] 
procedure InitializeWizard; 
var 
    BitmapFileName: string; 
    BitmapImage: TBitmapImage; 
    WelcomePage: TWizardPage; 
begin 
    WelcomePage := CreateCustomPage(wpWelcome, '', '');  

    BitmapFileName := ExpandConstant('{tmp}\DataNova_Logo.bmp'); 
    ExtractTemporaryFile(ExtractFileName(BitmapFileName)); 

    BitmapImage := TBitmapImage.Create(WelcomePage); 
    BitmapImage.AutoSize := True; 
    BitmapImage.Bitmap.LoadFromFile(BitmapFileName); 
    BitmapImage.Cursor := crHand; 
    BitmapImage.Left := 10; 
    BitmapImage.Top := 10; 
    BitmapImage.Parent := WelcomePage.Surface; 
end; 

如何顯示在整個頁面的圖像與主面板隱藏?

+0

如果你不想使用自己的解決方案,我可以推薦你這個項目,產生清涼皮膚的Inno安裝程序:HTTP://graphical-installer.com。圖片:http://graphical-installer.com/joomla/images/stories/gallery/projects/gallery-18.jpg – Slappy

+0

@Slappy,或者如果你有AlphaSkins和Delphi,或者你有Delphi XE2和VCL皮膚 - 你可以重新建立你自己的InnoSetup。哦,我明白了,對不起,你是作者:-) – TLama

+0

@TLama:這正是我推薦使用我的工具而不是從頭開始寫作的原因。幾年前,我也想爲我的軟件創建一個很酷的安裝程序,我決定修改Inno Setup。太可怕了!我必須下載並安裝cvs/svn/git,下載inno源碼(以pascal),安裝Delphi 7,設置環境變量並編譯所有內容(第一次)。比添加皮膚支持,創建整體解決方案等等。使用這樣的專業產品對於普通用戶來說更舒適和更快速。 – Slappy

回答

7

當您切換到歡迎頁面並在離開時再次顯示它們時,您需要隱藏Bevel1,MainPanelInnerNotebook組件。相反,只有當您顯示歡迎頁面時才需要顯示該圖片,因爲它覆蓋了整個頁面區域。所以,下面的代碼將這樣的伎倆:

[Code] 
var 
    WelcomePageID: Integer; 
    BitmapImage: TBitmapImage; 

procedure InitializeWizard; 
var 
    WelcomePage: TWizardPage; 
begin 
    WelcomePage := CreateCustomPage(wpWelcome, '', ''); 
    WelcomePageID := WelcomePage.ID; 
    BitmapImage := TBitmapImage.Create(WizardForm); 
    BitmapImage.Bitmap.LoadFromFile('C:\Image.bmp'); 
    BitmapImage.Top := 0; 
    BitmapImage.Left := 0; 
    BitmapImage.AutoSize := True; 
    BitmapImage.Cursor := crHand; 
    BitmapImage.Visible := False; 
    BitmapImage.Parent := WizardForm.InnerPage; 
end; 

procedure CurPageChanged(CurPageID: Integer); 
begin 
    BitmapImage.Visible := CurPageID = WelcomePageID; 
    WizardForm.Bevel1.Visible := CurPageID <> WelcomePageID; 
    WizardForm.MainPanel.Visible := CurPageID <> WelcomePageID; 
    WizardForm.InnerNotebook.Visible := CurPageID <> WelcomePageID; 
end; 
+0

工作得很好! FWIW - 一個好的圖像尺寸是750 x 460 px – SlowLearner

+0

有關類似問題,請參閱[Inno Setup - 圖像作爲安裝程序背景](https://stackoverflow.com/q/41049054/850848)(整個窗口中的背景圖像)或[圖像覆蓋Inno Setup中的整個頁面](https://stackoverflow.com/q/44471989/850848)(整個頁面上的「header」和「footer」之間的背景圖像)。 –