ros*_*mcm 8 checkbox inno-setup pascalscript
我已经在InnoSetup脚本的"其他任务"页面中添加了一个复选框
[Tasks]
Name: "StartMenuEntry" ; Description: "Start my app when Windows starts" ; GroupDescription: "Windows Startup"; MinVersion: 4,4;
Run Code Online (Sandbox Code Playgroud)
我希望在wpSelectTasks页面显示时初始化此复选框,并在Next单击按钮时读取值.我无法弄清楚如何访问复选框`checked'值.
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 ;
Run Code Online (Sandbox Code Playgroud)
TLa*_*ama 16
任务复选框实际上是WizardForm.TasksList检查列表框中的项目.如果你知道他们的索引,你可以很容易地访问它们.请注意,项目可以分组(只是你的情况),每个新组也在该检查列表框中也有一个项目,因此对于你的情况,项目索引将是1:
[Setup]
AppName=TasksList
AppVersion=1.0
DefaultDirName={pf}\TasksList
[Tasks]
Name: "TaskEntry"; Description: "Description"; GroupDescription: "Group";
[code]
function NextButtonClick(CurPageID: Integer): Boolean;
begin
Result := True;
if CurPageID = wpSelectTasks then
begin
if WizardForm.TasksList.Checked[1] then
MsgBox('First task has been checked.', mbInformation, MB_OK)
else
MsgBox('First task has NOT been checked.', mbInformation, MB_OK);
end;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpSelectTasks then
WizardForm.TasksList.Checked[1] := False;
end;
Run Code Online (Sandbox Code Playgroud)
下面说明了WizardForm.TasksList当您有两个具有不同组的任务时,检查列表框的外观如何:

要按说明访问任务复选框,请尝试以下操作:
[Setup]
AppName=Task List
AppVersion=1.0
DefaultDirName={pf}\TasksList
[Tasks]
Name: "Task"; Description: "Task Description"; GroupDescription: "Group 1";
[code]
function NextButtonClick(CurPageID: Integer): Boolean;
var
Index: Integer;
begin
Result := True;
if CurPageID = wpSelectTasks then
begin
Index := WizardForm.TasksList.Items.IndexOf('Task Description');
if Index <> -1 then
begin
if WizardForm.TasksList.Checked[Index] then
MsgBox('First task has been checked.', mbInformation, MB_OK)
else
MsgBox('First task has NOT been checked.', mbInformation, MB_OK);
end;
end;
end;
procedure CurPageChanged(CurPageID: Integer);
var
Index: Integer;
begin
if CurPageID = wpSelectTasks then
begin
Index := WizardForm.TasksList.Items.IndexOf('Task Description');
if Index <> -1 then
WizardForm.TasksList.Checked[Index] := False;
end;
end;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12593 次 |
| 最近记录: |