Pregunta

Agregué algunas páginas personalizadas a mi instalador. Estas páginas recopilan algunos datos del usuario y del disco, y me gustaría mostrar estos datos al usuario antes de que comience el paso final de instalación. Inno Setup tiene la página 'Listo para instalar' exactamente para este propósito.

¿Cómo puedo agregar texto a esta página? Por defecto me muestra:

Destination location:
  C:\Program Files\MyProgram

Me gustaría agregar un texto aquí. ¿Es posible?

¿Fue útil?

Solución

Lo encontré ... http://www.innosetup.org/ishelp/topic_scriptevents.htm :

  Función

UpdateReadyMemo (Space, NewLine, MemoUserInfoInfo, MemoDirInfo, MemoTypeInfo, MemoComponentsInfo, MemoGroupInfo, MemoTasksInfo: String): String;

     

Si el programa de instalación encuentra la función de evento UpdateReadyMemo en el script Pascal, se llama automáticamente cuando la página del asistente Listo para instalar se convierte en la página activa. Debería devolver el texto que se mostrará en la nota de configuración en la página del asistente Listo para instalar como una sola cadena con líneas separadas por el parámetro NewLine . El parámetro Space contiene una cadena con espacios. El programa de instalación utiliza esta cadena para sangrar la configuración. Los otros parámetros contienen las cadenas (posiblemente vacías) que Setup habría utilizado como secciones de configuración. El parámetro MemoDirInfo , por ejemplo, contiene la cadena de la sección Directorio seleccionado .

Otros consejos

Modifique el siguiente código:

procedure CurPageChanged(CurPageID: Integer);
begin
  if CurPageID = wpReady then
  begin
    Wizardform.ReadyMemo.Lines.Add(''); { Empty string }
    Wizardform.ReadyMemo.Lines.Add('Setup HP-UX test created by Armand');
  end;
end;

Además, si solo desea cambiar los mensajes preexistentes a algo menos genérico, puede cambiarlos en su sección [Mensajes]:

es decir

[Messages]
ReadyMemoDir=Server location:

Los mensajes predeterminados son:

  • WizardReady
  • ReadyLabel1
  • ReadyLabel2a
  • ReadyLabel2b
  • ReadyMemoUserInfo
  • ReadyMemoDir
  • ReadyMemoType
  • ReadyMemoComponents
  • ReadyMemoGroup
  • ReadyMemoTasks

Puede conectarse al proceso de configuración de ReadyMemo WizardPage utilizando esta función:

  Función

UpdateReadyMemo (Space, NewLine, MemoUserInfoInfo, MemoDirInfo, MemoTypeInfo, MemoComponentsInfo, MemoGroupInfo, MemoTasksInfo: String): String;

     

Si el programa de instalación encuentra la función de evento UpdateReadyMemo en el script Pascal, se llama automáticamente cuando la página del asistente Listo para instalar se convierte en la página activa. Debería devolver el texto que se mostrará en la nota de configuración en la página del asistente Listo para instalar como una sola cadena con líneas separadas por el parámetro NewLine . El parámetro Space contiene una cadena con espacios. El programa de instalación utiliza esta cadena para sangrar la configuración. Los otros parámetros contienen las cadenas (posiblemente vacías) que Setup habría utilizado como secciones de configuración. El parámetro MemoDirInfo , por ejemplo, contiene la cadena de la sección Directorio seleccionado .

Documentos oficiales en: http://www.innosetup.org/ishelp/topic_scriptevents.htm

Aquí hay una implementación de ejemplo simple que agrega una sola línea al contenido predeterminado del ReadyMemo :

function UpdateReadyMemo(Space, NewLine, MemoUserInfoInfo, MemoDirInfo, MemoTypeInfo, MemoComponentsInfo, MemoGroupInfo, MemoTasksInfo: String): String;
begin
    Result := ''

    if MemoUserInfoInfo <> '' then begin
        Result := MemoUserInfoInfo + Newline + NewLine;
    end;
    if MemoDirInfo <> '' then begin
        Result := Result + MemoDirInfo + Newline + NewLine;
    end;
    if MemoTypeInfo <> '' then begin
        Result := Result + MemoTypeInfo + Newline + NewLine;
    end;
    if MemoComponentsInfo <> '' then begin
        Result := Result + MemoComponentsInfo + Newline + NewLine;
    end;
    if MemoGroupInfo <> '' then begin
        Result := Result + MemoGroupInfo + Newline + NewLine;
    end;
    if MemoTasksInfo <> '' then begin
        Result := Result + MemoTasksInfo + Newline + NewLine;
    end;

    Result := Result + 'My custom string';
end;

Para su información: intenté agregar este código a la respuesta aceptada, pero se rechazó y me dijeron que escribiera un comentario o una nueva respuesta.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top