5

クラスを使用して、カスタムデザインのボタンをInnoScriptに追加したいと思いますTBitmapImage

Inno Setupスクリプトは正常にコンパイルされていますが、ビットマップがフォームに表示されていません。可能性を調べましたが、エラーが見つからないようです。このように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;
4

1 に答える 1

6

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; 
于 2012-05-28T10:32:38.057 に答える