2012-06-21 7 views
5

He creado una página de bienvenida personalizada con una imagen, pero el panel principal en la parte superior sigue sin aparecer. Por lo que yo quiero lograr Vea a continuación:¿Cómo ocultar el panel principal y mostrar una imagen en toda la página?

enter image description here

Aquí está el código:

[Code] 
procedure InitializeWizard; 
var 
    BitmapFileName: string; 
    BitmapImage: TBitmapImage; 
    WelcomePage: TWizardPage; 
begin 
    WelcomePage := CreateCustomPage(wpWelcome, '', '');  

    BitmapFileName := ExpandConstant('{tmp}\DataNova_Logo.bmp'); 
    ExtractTemporaryFile(ExtractFileName(BitmapFileName)); 

    BitmapImage := TBitmapImage.Create(WelcomePage); 
    BitmapImage.AutoSize := True; 
    BitmapImage.Bitmap.LoadFromFile(BitmapFileName); 
    BitmapImage.Cursor := crHand; 
    BitmapImage.Left := 10; 
    BitmapImage.Top := 10; 
    BitmapImage.Parent := WelcomePage.Surface; 
end; 

Cómo mostrar la imagen en toda la página con el panel principal escondido?

+0

Si no desea utilizar su propia solución que puedo recomendar este proyecto para la creación de instaladores de piel fresco Inno: http: //graphical-installer.com. Imagen: http://graphical-installer.com/joomla/images/stories/gallery/projects/gallery-18.jpg – Slappy

+0

@Slappy, o si tiene AlphaSkins por ejemplo y Delphi o si tiene Delphi XE2 con máscaras de VCL incorporadas -en tu puedes simplemente reconstruir tu propio InnoSetup. Oh, ya veo, siento que seas el autor :-) – TLama

+0

@TLama: esta es exactamente la razón por la que recomiendo usar mi herramienta en lugar de escribir desde cero. Hace algunos años, también quería crear un instalador genial para mi software y decidí modificar la configuración de Inno. ¡¡¡Eso fue terrible!!! Tuve que descargar e instalar cvs/svn/git, descargar inno sources (en pascal), instalar Delphi 7, establecer variables de entorno y compilar todo (por primera vez). Luego agregue soporte para la piel, cree soluciones completas, etc. El uso de dicho producto profesional es mucho más cómodo y rápido para el usuario habitual. – Slappy

Respuesta

7

Necesita ocultar los componentes Bevel1, MainPanel y InnerNotebook cuando cambia a su página de bienvenida y volver a mostrarlos cuando la abandona. Por el contrario, la imagen que necesita mostrar solo muestra la página de bienvenida, ya que cubre todo el área de la página. Por lo que el siguiente código hará el truco:

[Code] 
var 
    WelcomePageID: Integer; 
    BitmapImage: TBitmapImage; 

procedure InitializeWizard; 
var 
    WelcomePage: TWizardPage; 
begin 
    WelcomePage := CreateCustomPage(wpWelcome, '', ''); 
    WelcomePageID := WelcomePage.ID; 
    BitmapImage := TBitmapImage.Create(WizardForm); 
    BitmapImage.Bitmap.LoadFromFile('C:\Image.bmp'); 
    BitmapImage.Top := 0; 
    BitmapImage.Left := 0; 
    BitmapImage.AutoSize := True; 
    BitmapImage.Cursor := crHand; 
    BitmapImage.Visible := False; 
    BitmapImage.Parent := WizardForm.InnerPage; 
end; 

procedure CurPageChanged(CurPageID: Integer); 
begin 
    BitmapImage.Visible := CurPageID = WelcomePageID; 
    WizardForm.Bevel1.Visible := CurPageID <> WelcomePageID; 
    WizardForm.MainPanel.Visible := CurPageID <> WelcomePageID; 
    WizardForm.InnerNotebook.Visible := CurPageID <> WelcomePageID; 
end; 
+0

¡Funciona muy bien! FWIW: un buen tamaño de imagen es 750 x 460 px – SlowLearner

+0

Para obtener una pregunta similar, consulte [Configuración Inno - Imagen como fondo del instalador] (https://stackoverflow.com/q/41049054/850848) (imagen de fondo en toda la ventana) o [Imagen que abarca toda la página en Inno Setup] (https://stackoverflow.com/q/44471989/850848) (imagen de fondo en toda la página, entre "encabezado" y "pie de página"). –

Cuestiones relacionadas