Inno Setup で透過処理

厳密には,透過と言う訳ではないですが.Inno Setup の TBitmapImage クラスには ReplaceColor と言うメンバ変数が定義されてあり,ここに指定した値が ReplaceWithColor で指定した値に変換されるようです.なので,透過(っぽい)処理を行うためには,透過したい色を ReplaceColor に指定して,インストール画面の色を ReplaceWithColor に指定すると実現する事ができます.

function CreateUserDefinedPage(const AfterID: Integer; const Title: String; const Caption: String): TWizardPage;
var
    page: TWizardPage;
begin
    page := CreateCustomPage(AfterID, Title, Caption);
    
    // ... 必要な処理を記述 ...
    
    // 画像をロードして作成したページに貼り付ける
    with TBitmapImage.Create(page) do begin
        AutoSize := true;
        ReplaceColor := $FFFFFF; // 白色を透過
        ReplaceWithColor := page.Surface.Color;
        with Bitmap do begin
            // ロードする画像のパスを指定する
            LoadFromFile('c:\example\foo.bmp');
        end;
        Parent := page.Surface;
    end;
    
    // ... 必要な処理を記述 ...
    
    Result := page;
end;

尚,Inno Setup にもシステムカラー用の定数が切られているようです.公式な情報が見つからなかったのですが,恐らくは下記のような定数が存在すると思います(参考:色定数 - RAD Studio).

定数 説明
cl3DDkShadow 3D コンポーネントの暗い影を表します
cl3DLight 3D コンポーネントの明るい部分を表します
clActiveBorder アクティブ ウィンドウの枠線のデフォルト色を表します
clActiveCaption アクティブ ウィンドウのタイトル バーのデフォルト色を表します
clAppWorkSpace アプリケーション作業領域のデフォルト色を表します
clBackground Windows のデフォルトの背景色を表します
clBtnFace ボタン面の色を表します
clBtnHighlight ボタンの強調表示の色を表します
clBtnShadow ボタンの影の色を表します
clBtnText ボタンの文字のデフォルト色を表します
clCaptionText アクティブ ウィンドウのタイトル バーに表示されるテキストのデフォルト色を表します
clDefault コンポーネントのデフォルト色を表します
clGradientActiveCaption アクティブ ウィンドウのタイトル バーのグラデーション表示における右側の色
clGradientInactiveCaption アクティブでないウィンドウのタイトル バーのグラデーション表示における右側の色
clGrayText 淡色表示されるテキストの色を表します
clHighlight 選択されたテキスト ブロックの背景色を表します
clHighlightText 選択されたテキストの色を表します
clInactiveBorder アクティブでないウィンドウの枠線のデフォルト色を表します
clInactiveCaption アクティブでないウィンドウのタイトル バーのデフォルト色を表します
clInactiveCaptionText アクティブでないウィンドウのタイトル テキストのデフォルト色を表します
clInfoBk ツール チップの背景色を表します
clInfoText ツール チップ テキストの色を表します
clMenu 選択されていないサブ メニュー項目の背景色を表します
clMenuBar 選択されていないメイン メニュー項目の背景色を表します
clMenuHighlight 選択されているメニュー項目の背景色を表します
clMenuText メニュー テキストのデフォルト色を表します
clNone 選択されていない場合の色を表します
clWindow ウィンドウのデフォルトの背景色を表します
clWindowFrame ウィンドウ フレームのデフォルトの背景色を表します
clWindowText ウィンドウ テキストのデフォルト色を表します

Related Pages