Inno setup 在“自定义布局”页面上选择“图像文件”,然后将文件复制到安装文件夹

Inno setup 在“自定义布局”页面上选择“图像文件”,然后将文件复制到安装文件夹,inno-setup,pascalscript,Inno Setup,Pascalscript,我的目标是让用户使用此安装程序,插入您的姓名,选择您的语言并设置自定义参数。就这样了。但我需要的是,用户选择一个图像,将其作为应用程序中的化身,这就是为什么用户选择一个图像,然后将文件复制到应用程序文件夹中 大概是这样的: 这是我的代码,如果有人能帮忙,我将不胜感激: [代码] {RedesignWizardFormBegin}//不要删除此行! //不要修改此部分。它是自动生成的。 程序重新设计; 开始 使用WizardForm.WizardSmallBitmapImage do 开始 左:

我的目标是让用户使用此安装程序,插入您的姓名,选择您的语言并设置自定义参数。就这样了。但我需要的是,用户选择一个图像,将其作为应用程序中的化身,这就是为什么用户选择一个图像,然后将文件复制到应用程序文件夹中

大概是这样的:

这是我的代码,如果有人能帮忙,我将不胜感激:

[代码]
{RedesignWizardFormBegin}//不要删除此行!
//不要修改此部分。它是自动生成的。
程序重新设计;
开始
使用WizardForm.WizardSmallBitmapImage do
开始
左:=ScaleX(350);
宽度:=ScaleX(150);
高度:=斯卡利(57);
结束;
使用WizardForm.PageDescription标记do
开始
宽度:=ScaleX(309);
结束;
使用WizardForm.PageNameLabel执行以下操作:
开始
宽度:=ScaleX(293);
结束;
{ReservationBegin}
//这部分是给你的。在这里添加您的专用代码。
{ReservationEnd}
结束;
//不要修改此部分。它是自动生成的。
{RedesignWizardFormEnd}//不要删除此行!
变量
NameEdit:TNewEdit;
参数设置为:TNewEdit;
LanguageCombo:TNewComboBox;
语言名称:TStringList;
函数ConvertLanguageName(常量值:string):string;
变量
I:整数;
密码:字;
开始
结果:='';
I:=1;

而我最容易利用的是使用创建的。没有任何东西阻止您将自定义控件添加到“输入文件”页面。您只需更改自动添加的“文件输入”控件的布局

您还需要更改
PlayerSettingsPage
变量的类型并将其设置为全局变量,以便可以在
InitializeWizard
函数之外访问用户输入的值

{全局变量}
变量
PlayerSettingsPage:TInputFileWizardPage;
化身指数:整数;
程序初始化;
变量
Delta:整数;
... {您的其他变量,但不是PlayerSettingsPage}
开始
玩家设置页面:=
CreateInputFilePage(wpSelectComponents,'Ingree Datos','Informacon del juego','';
{您现有的代码}
阿凡达索引:=
PlayerSettingsPage.Add(
“头像:”,“图像文件|*.png;*.jpg;*.jpeg;*.gif |所有文件|*.*”,“.jpg”);
三角洲:=
ParametresEdit.Top+ParametresEdit.Height+ScaleY(32)-
PlayerSettingsPage.PromptLabels[AvatarIndex].顶部;
PlayerSettingsPage.PromptLabels[AvatarIndex]。顶部:=
PlayerSettingsPage.PromptLabels[AvatarIndex].Top+Delta;
PlayerSettingsPage.编辑[AvatarIndex]。顶部:=
PlayerSettingsPage.编辑[AvatarIndex].Top+Delta;
PlayerSettingsPage.按钮[AvatarIndex]。顶部:=
PlayerSettingsPage.按钮[AvatarIndex].顶部+三角形;
结束;

然后将所选化身安装到:

过程CurStepChanged(CurStep:TSetupStep);
变量
化身来源:字符串;
头像:字符串;
开始
如果CurStep=ssPostInstall,则
开始
AvatarSource:=玩家设置页面。编辑[AvatarIndex]。文本;
AvatarDest:=ExpandConstant('{app}\'+ExtractFileName(AvatarSource));
日志(格式('将化身从“%s”安装到“%s”,[AvatarSource,AvatarDest]);
如果文件复制(AvatarSource、AvatarDest、False),则
开始
日志(“化身安装程序”);
结束
其他的
开始
日志(“安装化身时出错”);
结束;
结束;
结束;

问题是什么?你缺了什么?如何用Pascal复制文件?如何触发复制?或者其他什么?如果导致用户找到一个文件,然后将其复制到应用程序文件夹中。代码创建的自定义页面与您的问题有什么关系?在该个性化页面上,我需要创建您选择的文件,您可以查看图像以便更好地理解,我不理解图像与文件的关系。首先,我不会说西班牙语。但我仍然相信我理解,这页是关于什么的,我看不到任何与文件的关系。那你想要什么呢????当用户单击符号时,是否要提示用户输入文件名?如何编辑?你想让用户选择一个路径,在那里头像应该安装?非常感谢!你是一个天才,最后一件事,复制的图像可以编辑的路径?我想编辑这一行:
AvatarDest:=ExpandConstant({app}\'+ExtractFileName(AvatarSource))
to:
AvatarDest:=ExpandConstant({app}\platform'+ExtractFileName(AvatarSource))认为图像将被复制到该文件夹中,但重命名图像谢谢否,必须将图像复制到此文件夹应用程序:{app}\platform缺少斜杠:
AvatarDest:=ExpandConstant({app}\platform\'+ExtractFileName(AvatarSource))请原谅中断,您可以在64x64像素的小框中显示用户选择的图像,否则图像,如果未选择任何内容,则显示默认值,