Wie tun, Lesen Sie und legen Sie den Wert einer checkbox in einem InnoSetup-Assistent-Seite?
Habe ich zusätzlich eine checkbox auf der "Zusätzliche Aufgaben" - Seite ein InnoSetup-Skript mit
[Tasks]
Name: "StartMenuEntry" ; Description: "Start my app when Windows starts" ; GroupDescription: "Windows Startup"; MinVersion: 4,4;
Ich initialisieren möchten Sie dieses Kontrollkästchen, wenn die wpSelectTasks
Seite zeigt, und Lesen Sie den Wert, wenn das Next
Schaltfläche geklickt wird. Ich kann nicht herausfinden, wie Sie auf die checkbox `checked' Wert.
function NextButtonClick(CurPageID: Integer): Boolean;
var
SelectTasksPage : TWizardPage ;
StartupCheckbox : TCheckbox ;
begin
Result := true ;
case CurPageID of
wpSelectTasks :
begin
SelectTasksPage := PageFromID (wpSelectTasks) ;
StartupCheckbox := TCheckbox (SelectTasksPage... { <== what goes here??? }
StartupCheckboxState := StartupCheckbox.Checked ;
end ;
end ;
end ;
- Normalerweise brauchen Sie nicht. Sie würde einfach die 'Aufgaben' - parameter, die mit der spezifischen Aufgabe in der registry-Einträge beteiligt mit auto-start.
- Danke @Sertac, Ja mir ist klar, dass, aber ich möchte den Zustand der checkbox initialisiert werden von einem Kommandozeilen-parameter, wenn das setup aufgerufen wird, und ich möchte in der Lage sein, um die Aufzeichnung des Status von es nach der Seite des Assistenten, so kann ich es verwenden, um Einfluss auf das Verhalten der späteren Skripte. Plus es ist etwas, was ich wollen Sie wissen, wie zu tun in der Regel...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aufgabe Kontrollkästchen sind in der Tat Elemente in der
WizardForm.TasksList
check-Liste angezeigt. Wenn Sie wissen, dass Ihre Indizes, die man zugreifen kann, können Sie ziemlich leicht. Beachten Sie, dass die Elemente, die gruppiert werden können (was gerade Ihr Fall ist) und jede neue Gruppe braucht auch ein Element, dass der check-Liste", so dass für Ihren Fall die item-index wird 1:Hier ist dargestellt, wie die
WizardForm.TasksList
check-Liste box aussieht, wenn Sie würde haben zwei Aufgaben mit unterschiedlichen Gruppen:Zugriff auf die task check box von seiner Beschreibung Folgendes versuchen:
WizardForm.TasksList.Items.IndexOf('TaskDescription')
finden Sie das Kontrollkästchen index zwar nicht, aber es ist durch die Aufgabenstellung, nicht vom task-Namen.IsTaskSelected('tatata')
arbeiten mit Indizes, die nicht für mich arbeiten. Auch ich empfehle das ausführen von Aktionen imPrepareToInstall
Rückruf, und nur speichern der globalen Variablen in derNextButtonClick
natürlich, weil der potenzielle drücken Sie auf zurück.IsTaskSelected
Funktion. Was mehr ist, es war eine Anforderung, eine Aufgabe auszuwählen (siehe Frage-Titel). Und um die Dinge uniform ist es einfach besser zu nutzen, den gleichen Zugang sowohl zu Lesen als auch zu schreiben, den Auswahlzustand eines Elements (ja, Sie könnenIsTaskSelected
zu Lesen, den Zustand und den index zu setzen, aber wissen Sie, es ist nicht so glatt wie wenn Sie es tun, die gleiche Weise). Deinen zweiten Punkt verstehe ich nicht. Bitte beachten Sie, dass in diesem Beispiel ist nur für illustrative Zwecke. Es ist nicht ein richtiges Drehbuch. Das Ziel war nur zu zeigen, dass lese - /Schreibzugriff.IsTaskSelected
. Diese Frage ist über lese-und Schreibzugriff...Große Antwort oben. Gab mir genau das, was ich brauchte.
Hatte ich einen Fall, wo ich eine Reihe von sekundären Installateure, benutzte ich die 'checkonce' option auf, aber ich wollte, dass Sie erneut überprüft werden, wenn der Ordner fehlt (z.B. der Benutzer löschte den install-Ordner manuell), z.B.