2013-05-26 118 views
1

是否可以根據嚮導窗體更改向導窗體上的頂部圖像。我可以改變左側的圖像,但想改變頂部(小圖像)。以編程方式更改WizardSmallImageFile - Inno Setup

procedure CurPageChanged(CurPageID: Integer); 
begin 
    if CurPageID = 4 then 
    filename:= 'babylontoolbar.bmp' 
    else 
    filename:= 'label2-crop.bmp'; 
    ExtractTemporaryFile(filename); 
    (*WizardForm.WizardSmallImageFile.Bitmap.LoadFromFile(ExpandConstant('{tmp}\'+FileName));*) 

    WizardForm.WizardBitmapImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\' + FileName)); 
end; 

我只是想知道如何引用小文件替換WizardSmallImageFile不工作。

感謝您的期待。

回答

4

WizardSmallImageFile指令被映射到WizardSmallBitmapImage控制WizardForm的,所以在代碼中,您可以訪問這種方式(反正不要硬編碼頁ID號,而是使用預期PageID常數):

procedure CurPageChanged(CurPageID: Integer); 
var 
    FileName: string; 
begin 
    if CurPageID = wpInfoBefore then 
    FileName := 'babylontoolbar.bmp' 
    else 
    FileName := 'label2-crop.bmp'; 

    ExtractTemporaryFile(FileName); 
    WizardForm.WizardSmallBitmapImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\' + FileName)); 
end; 
+0

謝謝。雖然每次嘗試引用CurPageChanged中的自定義頁面(CurPageID:Integer),但有一個問題;我得到一個類型不匹配。在curPageId = Opt中,那麼是否有辦法輸出一個變量,如頁面名稱到msgBox。這樣我可以自己弄清楚。 – grahamskaraoke

+0

不客氣!抱歉,我現在一直在回答其他問題。那些'wp..'常量是整數,所以你不應該得到類型不匹配的錯誤。他們的名字是相當自我解釋的,但如果你不確定,你可能會打電話給這個程序(http://pastebin.com/TDxQK8VX),它會告訴你。 – TLama

+0

這很好,但對於自定義頁面,它當然顯示未知或自定義頁面ID。該頁面使用Opt:= CreateInputQueryPage(wpInfoBefore,'Delta Toolbar','','');我一直假設頁面名稱是Opt,但顯然我缺少一些東西。我得到的錯誤是類型不匹配。 – grahamskaraoke

0

再次TLama有答案,只需要繼續搜索。對於那些試圖做類似的事情,並有問題找到答案退房Skipping custom pages based on optional components in Inno Setup

+0

抱歉誤會;是的,當然,如果你正在創建一個自定義頁面,你應該正確指出,至少要存儲你創建的頁面的ID。然後,您至少可以通過YourPage.ID確定您的真實網頁ID而不是硬編碼的數字4。 – TLama

+1

沒問題。兩個星期前,我對Inno Setup或腳本語言以及堆棧溢出的幫助一無所知,並且大部分都是我和其他inno setup用戶的絕佳示例,我覺得我已經掌握了至少該語言的主要基礎知識。隨着年齡的增長,我發現理解技術類型可以幫助您進行鬥爭,但您已經變得更加輕鬆。非常感謝。 – grahamskaraoke