2012-05-27 22 views
5

TBitmapImageクラスを使用して、Inno Scriptにカスタム設計のボタンを追加したいとします。Innoセットアップ:TBitmapImageが表示されない

My Innoセットアップスクリプトはうまくコンパイルされていますが、ビットマップがフォームに表示されていません。私はどのような可能性を見ても、私が作ったエラーを見つけることはできないようです。それはTBitmapImage一部は、ATMのように見える方法は次のとおりです。

procedure CreateMuteButton(ParentForm: TSetupForm); 
var 
    MuteImage: TBitmapImage; 
    BitmapFileName: String; 
begin 
    BitmapFileName := ExpandConstant('{tmp}\muteBtn.bmp'); 
    ExtractTemporaryFile(ExtractFileName(BitmapFileName)); 
    MuteImage := TBitmapImage.Create(ParentForm); 
    MuteImage.Bitmap.LoadFromFile(BitmapFileName); 
    MuteImage.Cursor := crHand; 
    MuteImage.OnClick := @MuteButtonOnClick; 
    MuteImage.Parent := ParentForm; 
    MuteImage.Left := 45; 
    MuteImage.Top := 80 
    MuteImage.Width := 38; 
    MuteImage.Height := 50; 
end; 

procedure InitializeWizard(); 
var 
    val: Integer; 
begin 
    CreateMuteButton(WizardForm); 
    (...) 
end; 
+0

は、コードに何かを見ることができない、してみてくださいMuteImage.BringToFront(); zの順序が詰まっている可能性があります。 –

+0

私はそれを助けてくれなかった:/ ()に何かを指定する必要はありますか? ドキュメントでこれが見つかりません。 – PTS

+0

BringToFrontに引数がありません。何年もInnosetupをやったことはありませんが、私はDelphiアプリケーションでこの問題を抱えていました。親、bringtofont、または単に間違った親を設定することを忘れると、私は探していました。 –

答えて

5

WizardFormクライアント領域自体が下斜角線の下にのみ表示されます。上記はWizardForm.InnerPageで、中央の個人/現在のウィザードページはプライベートInnerNotebookに含まれています。

これは、ページの左側にイメージを置く:

MuteImage := TBitmapImage.Create(WizardForm.InnerPage); 
MuteImage.Parent := WizardForm.InnerPage; 
MuteImage.Left := 0; 
{ Uses the top of the wizard pages to line up } 
MuteImage.Top := WizardForm.SelectDirPage.Parent.Top; 

これは、下部にそれを置くのに対し:

MuteImage := TBitmapImage.Create(WizardForm); 
MuteImage.Parent := WizardForm; 
MuteImage.Left := 0; 
{ Below the inner page } 
MuteImage.Top := WizardForm.InnerPage.Height; 
+0

ありがとうございました! :) これらの異なる領域について知っておくとよいでしょう。 – PTS

関連する問題