gpt4 book ai didi

inno-setup - 选择任务时显示图像

转载 作者:行者123 更新时间:2023-12-03 16:47:29 27 4
gpt4 key购买 nike

我希望其中一个任务被选中时显示不同的图像。

例如,如果我有三个不同的任务:

Task 1: Standard version
Task 2: Lite version
Task 3: Pro version
  • 选中任务 1 时必须显示图像。
  • 选中任务 2 时必须隐藏任务 1 图像并显示任务 2 图像。
  • 选中任务 3 时,必须将其他人隐藏在任务图像下方并显示任务 3 图像。

这里是一些代码

[Code]
{ RedesignWizardFormBegin } { Don't remove this line! }
{ Don't modify this section. It is generated automatically. }
var
BitmapImage1: TBitmapImage;

procedure RedesignWizardForm;
begin
{ BitmapImage1 }
BitmapImage1 := TBitmapImage.Create(WizardForm);
with BitmapImage1 do
begin
Parent := WizardForm.SelectTasksPage;
Left := ScaleX(320);
Top := ScaleY(88);
Width := ScaleX(57);
Height := ScaleY(57);
ExtractTemporaryFile('WizardForm.BitmapImage1.bmp');
Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizardForm.BitmapImage1.bmp'));
end;

with WizardForm.TasksList do
begin
Width := ScaleX(257);
Height := ScaleY(200);
Visible := False;
end;
end;

最佳答案

  • 使用WizardIsTaskSelected (IsTaskSelected 在旧版本的 Inno Setup 中)找出已选择的任务。
  • 处理 WizardForm.TasksList.OnClickCheckCurPageChanged检测选择变化并相应地更新图像。
[Files]
Source: "lite.bmp"; Flags: dontcopy
Source: "pro.bmp"; Flags: dontcopy
Source: "std.bmp"; Flags: dontcopy

[Tasks]
Name: std; Description: "Standard version"; Flags: exclusive
Name: lite; Description: "Lite version"; Flags: exclusive
Name: pro; Description: "Pro version"; Flags: exclusive

[Code]
var
BitmapImage1: TBitmapImage;

procedure UpdateTasksImage;
var
Image: string;
begin
if WizardIsTaskSelected('pro') then Image := 'pro.bmp'
else
if WizardIsTaskSelected('lite') then Image := 'lite.bmp'
else
if WizardIsTaskSelected('std') then Image := 'std.bmp'
else Image := '';

if Image <> '' then
begin
ExtractTemporaryFile(Image);
BitmapImage1.Bitmap.LoadFromFile(ExpandConstant('{tmp}\' + Image));
BitmapImage1.Visible := True;
end
else
begin
BitmapImage1.Visible := False;
end;
end;

procedure TasksListClickCheck(Sender: TObject);
begin
{ Update image, when task selection changes }
UpdateTasksImage;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
{ Update image, when task page is entered }
{ (as tasks can be selected by changing setup type or components) }
if CurPageID = wpSelectTasks then
begin
UpdateTasksImage;
end;
end;

procedure InitializeWizard;
begin
BitmapImage1 := TBitmapImage.Create(WizardForm);
with BitmapImage1 do
begin
Parent := WizardForm.SelectTasksPage;
Left := ScaleX(320);
Top := ScaleY(88);
Width := ScaleX(57);
Height := ScaleY(57);
end;

with WizardForm.TasksList do
begin
Width := ScaleX(257);
Height := ScaleY(200);
end;

WizardForm.TasksList.OnClickCheck := @TasksListClickCheck
end;

enter image description here

enter image description here


尽管在我看来,您的“任务”实际上应该是设置类型或组件。用户可以选择“标准”、“精简版”和“专业版”的组合,这对我来说毫无意义。这些不应该是一个不同的选项吗?

关于inno-setup - 选择任务时显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45047918/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com