Inno Setup | Pascal: leer el valor de SelectedValueIndex, que cambia el valor de una variable.
Después de intentar durante dos días, finalmente decidí hacer mi primera pregunta aquí en Stackoverflow.
Tengo algo de experiencia programando en C#, pero no puedo entender tareas simples en Pascal.
Como dice el título, simplemente quiero leer el botón de radio actualmente seleccionado, que debería cambiar el nombre de otra variable.
La variable determina dónde desempaqueta el archivo en mi computadora.
Nota: ya puedo leer mi variable ‘VersionNumber’, ¡sin embargo, no contiene mi elemento seleccionado!
[Code]
var
Page1: TInputOptionWizardPage;
SetupString21:string;
SetupString22:string;
SetupBool21:Boolean;
SetupBool22:Boolean;
VersionNumber:string;
procedure InitializeWizard;
begin
SetupString21 := '2021';
SetupString22 := '2022';
VersionNumber := SetupString21;
Page1 := CreateInputOptionPage(1, 'Selecciona una versión', 'Texto de ayuda', 'Segundo texto de ayuda', True, False);
// Agregar elementos
Page1.Add(SetupString21);
Page1.Add(SetupString22);
// Establecer valores iniciales (opcional)
Page1.Values[0] := True;
// Leer valores en variables
SetupBool21 := Page1.Values[0];
SetupBool22 := Page1.Values[1];
if WizardForm.TypesCombo.SelectedValueIndex = SetupString22 then VersionNumber := SetupString22;
end;
function GetParams(Value: string): string;
begin
Result := VersionNumber;
end;
davy.ai
Para leer el botón de opción actualmente seleccionado en PascalScript, puedes utilizar la propiedad
Page.Values
del objetoTInputOptionWizardPage
. Esta propiedad es un arreglo de valores booleanos que representan si cada opción en la página está seleccionada o no.En tu código, puedes acceder a la opción actualmente seleccionada indexando el arreglo
Page.Values
con el índice correspondiente a la opción. Por ejemplo, para verificar si la primera opción está seleccionada:Este bloque de código debe reemplazar la declaración
if
que actualmente tienes en tu procedimientoInitializeWizard
.Ten en cuenta que
WizardForm.TypesCombo.SelectedValueIndex
no está relacionado con el objetoTInputOptionWizardPage
y, por lo tanto, no se puede utilizar para determinar el botón de opción seleccionado. En su lugar, debes usar la propiedadPage.Values
como se describe anteriormente.También debes tener en cuenta que necesitas definir el procedimiento
InitializeWizard
en tu script, lo cual has hecho en el fragmento de código que has mostrado.