2012-05-27 14 views
5

Quiero agregar botones personalizados diseñados a mi Inno Script con la clase TBitmapImage.Configuración de Inno: TBitmapImage no aparece

Mi script Inno Setup se está compilando bien, pero el mapa de bits no se muestra en el formulario. Miré en todas las posibilidades pero no puedo encontrar el error que hice. Así es como la parte TBitmapImage parece 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

no se puede ver nada malo en el código, intente MuteImage.BringToFront(); puede ser z el orden se está llenando. –

+0

Agregué que, no ayudó:/ ¿Debo especificar algo en()? No puedo encontrar esto en la documentación. – PTS

+0

Sin argumentos en BringToFront. No he trabajado con Innosetup durante años, pero si tuviera este problema en una aplicación de Delphi, olvidarme de establecer mi padre, traer mi hijo o simplemente el padre equivocado sería lo que buscaría. –

Respuesta

5

la propia área de WizardForm cliente sólo es visible por debajo de la línea de biselado inferior. Encima de eso está WizardForm.InnerPage, y las páginas del asistente individual/actual en el medio contenidas en un InnerNotebook privado.

Esto pone la imagen a la izquierda de las páginas:

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; 

Considerando que el presente pone en la sección inferior:

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

¡Muchas gracias por haber hecho el trabajo! :) Es bueno saber sobre esas áreas diferentes. – PTS