论坛风格切换切换到宽版
  • 4942阅读
  • 15回复

inno选择a才复制*文件 [复制链接]

上一主题 下一主题
离线969511048
 

发帖
151
金钱
1440
威望
144
只看楼主 倒序阅读 0 发表于: 2013-12-09


当选择显存为32M以下或内存为512M以下时,软件版本处的中文版不可选择
选择中文版时安装***文件
选择英文版时安装xxx文件
使列表框中的字体不可更改






离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 1 发表于: 2013-12-10
procedure ComboBox3a4OnChange(Sender: TObject);
begin
  if (ComboBox3.Text = '32M以下') or (ComboBox4.Text = '512M以下') then
    RadioButton1.Enabled := false
  else
    RadioButton1.Enabled := true;
end;

function CustomForm_CreatePage(PreviousPageId: Integer): Integer;
// 其它代码
  ComboBox3.Items.Append('32M以上');
  ComboBox3.Items.Append('32M以下');
  ComboBox3.OnChange:=@ComboBox3a4OnChange;

  ComboBox4.Items.Append('512M以上');
  ComboBox4.Items.Append('512M以下');
  ComboBox4.OnChange:=@ComboBox3a4OnChange;
//其它代码
离线969511048

发帖
151
金钱
1440
威望
144
只看该作者 2 发表于: 2013-12-10

解决了“当选择显存为32M以下或内存为512M以下时,软件版本处的中文版不可选择”
想把列表框中的文字改为只读




离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 3 发表于: 2013-12-11
看不懂你说什么。
离线969511048

发帖
151
金钱
1440
威望
144
只看该作者 4 发表于: 2013-12-11
我觉得还是贴图比较好
1.使【图1】中这个列表式选择框中的文字不可以删除或更改,只能选择32M以下或32M以上,不可写入其他值,也就是说它是只读的
图1
2.选择【图2的选项后自动选择【图3选项
图2
图3

离线969511048

发帖
151
金钱
1440
威望
144
只看该作者 5 发表于: 2013-12-11
[Code]
var
  RadioButton1: TRadioButton;
  RadioButton2: TRadioButton;
  NewStaticText1: TNewStaticText;
  NewStaticText2: TNewStaticText;
  ComboBox1: TComboBox;
  ComboBox2: TComboBox;
  ComboBox3: TComboBox;
  ComboBox4: TComboBox;
  NewStaticText3: TNewStaticText;
  NewStaticText4: TNewStaticText;
  NewStaticText5: TNewStaticText;
  NewStaticText6: TNewStaticText;

procedure ComboBox2a3a4OnChange(Sender: TObject);
begin
  if (ComboBox2.Text = '金山毒霸') or (ComboBox3.Text = '32M以下') or (ComboBox4.Text = '512M以下') then
    RadioButton1.Enabled := false
  else
    RadioButton1.Enabled := true;
end;

function SampleForm_NextButtonClick(Page: TWizardPage): Boolean;
begin
   Result := true;
  end;

function CustomForm_CreatePage(PreviousPageId: Integer): Integer;
var
  Page: TWizardPage;
begin
  Page := CreateCustomPage(
    PreviousPageId,
    ExpandConstant('{cm:CustomForm_Caption}'),
    ExpandConstant('{cm:CustomForm_Description}'));

{ RadioButton1 }
  RadioButton1 := TRadioButton.Create(Page);
  with RadioButton1 do
  begin
    Parent := Page.Surface;
    Caption := ExpandConstant('{cm:CustomForm_RadioButton1_Caption0}');
    Left := ScaleX(40);
    Top := ScaleY(184);
    Width := ScaleX(153);
    Height := ScaleY(17);
    TabOrder := 0;
  end;
  
  { RadioButton2 }
  RadioButton2 := TRadioButton.Create(Page);
  with RadioButton2 do
  begin
    Parent := Page.Surface;
    Caption := ExpandConstant('{cm:CustomForm_RadioButton2_Caption0}');
    Left := ScaleX(40);
    Top := ScaleY(208);
    Width := ScaleX(153);
    Height := ScaleY(17);
    TabOrder := 1;
  end;
  
  { NewStaticText1 }
  NewStaticText1 := TNewStaticText.Create(Page);
  with NewStaticText1 do
  begin
    Parent := Page.Surface;
    Caption := ExpandConstant('{cm:CustomForm_NewStaticText1_Caption0}');
    Left := ScaleX(0);
    Top := ScaleY(152);
    Width := ScaleX(93);
    Height := ScaleY(14);
    TabOrder := 2;
  end;
  
  { NewStaticText2 }
  NewStaticText2 := TNewStaticText.Create(Page);
  with NewStaticText2 do
  begin
    Parent := Page.Surface;
    Caption := ExpandConstant('{cm:CustomForm_NewStaticText2_Caption0}');
    Left := ScaleX(0);
    Top := ScaleY(0);
    Width := ScaleX(413);
    Height := ScaleY(30);
    TabOrder := 3;
  end;
  
  { ComboBox1 }
  ComboBox1 := TComboBox.Create(Page);
  with ComboBox1 do
  begin
    Parent := Page.Surface;
    Left := ScaleX(80);
    Top := ScaleY(48);
    Width := ScaleX(105);
    Height := ScaleY(21);
    TabOrder := 4;
    ComboBox1.Items.Append('Windows XP');
    ComboBox1.Items.Append('Windows 2000');
  end;
  
  { ComboBox2 }
  ComboBox2 := TComboBox.Create(Page);
  with ComboBox2 do
  begin
    Parent := Page.Surface;
    Left := ScaleX(304);
    Top := ScaleY(48);
    Width := ScaleX(105);
    Height := ScaleY(21);
    TabOrder := 5;
   ComboBox2.Items.Append('360安全卫士');
    ComboBox2.Items.Append('金山毒霸');
    ComboBox2.OnChange:=@ComboBox2a3a4OnChange;
  end;
  
  { ComboBox3 }
  ComboBox3 := TComboBox.Create(Page);
  with ComboBox3 do
  begin
    Parent := Page.Surface;
    Left := ScaleX(80);
    Top := ScaleY(96);
    Width := ScaleX(105);
    Height := ScaleY(21);
    TabOrder := 6;
    ComboBox3.Items.Append('32M以上');
    ComboBox3.Items.Append('32M以下');
    ComboBox3.OnChange:=@ComboBox2a3a4OnChange;
  end;
  
  { ComboBox4 }
  ComboBox4 := TComboBox.Create(Page);
  with ComboBox4 do
  begin
    Parent := Page.Surface;
    Left := ScaleX(304);
    Top := ScaleY(96);
    Width := ScaleX(105);
    Height := ScaleY(21);
    TabOrder := 7;
    ComboBox4.Items.Append('512M以上');
    ComboBox4.Items.Append('512M以下');
    ComboBox4.OnChange:=@ComboBox2a3a4OnChange;
  end;
  
  { NewStaticText3 }
  NewStaticText3 := TNewStaticText.Create(Page);
  with NewStaticText3 do
  begin
    Parent := Page.Surface;
    Caption := ExpandConstant('{cm:CustomForm_NewStaticText3_Caption0}');
    Left := ScaleX(224);
    Top := ScaleY(96);
    Width := ScaleX(69);
    Height := ScaleY(14);
    TabOrder := 8;
  end;
  
  { NewStaticText4 }
  NewStaticText4 := TNewStaticText.Create(Page);
  with NewStaticText4 do
  begin
    Parent := Page.Surface;
    Caption := ExpandConstant('{cm:CustomForm_NewStaticText4_Caption0}');
    Left := ScaleX(0);
    Top := ScaleY(96);
    Width := ScaleX(69);
    Height := ScaleY(14);
    TabOrder := 9;
  end;
  
  { NewStaticText5 }
  NewStaticText5 := TNewStaticText.Create(Page);
  with NewStaticText5 do
  begin
    Parent := Page.Surface;
    Caption := ExpandConstant('{cm:CustomForm_NewStaticText5_Caption0}');
    Left := ScaleX(224);
    Top := ScaleY(48);
    Width := ScaleX(69);
    Height := ScaleY(14);
    TabOrder := 10;
  end;
  
  { NewStaticText6 }
  NewStaticText6 := TNewStaticText.Create(Page);
  with NewStaticText6 do
  begin
    Parent := Page.Surface;
    Caption := ExpandConstant('{cm:CustomForm_NewStaticText6_Caption0}');
    Left := ScaleX(0);
    Top := ScaleY(48);
    Width := ScaleX(69);
    Height := ScaleY(14);
    TabOrder := 11;
  end;

  with Page do
  begin
    OnNextButtonClick := @SampleForm_NextButtonClick;
  end;

  Result := Page.ID;
end;

{ SampleForm_InitializeWizard }


procedure InitializeWizard();
begin
  CustomForm_CreatePage(wpWelcome);
end;


离线969511048

发帖
151
金钱
1440
威望
144
只看该作者 6 发表于: 2013-12-11
红色字体为我要实现“选择【图3】后,才启用【图4】中的“下一步”,否则为【图5】,那部分是错误的,我不知该怎么写
  
我想根据下面的内容更改实现“选择中文版安装【efg文件夹】选择英文版安装【abc文件夹】

[Files]
Source: "C:\Components_1.txt"; DestDir: "{app}\Components"; Flags: ignoreversion ; Components: a1;
Source: "C:\Components_2.txt"; DestDir: "{app}\Components"; Flags: ignoreversion ; Components: a2;
Source: "C:\Components_3.txt"; DestDir: "{app}\Components"; Flags: ignoreversion ; Components: a3;
Source: "C:\Components_4.txt"; DestDir: "{app}\Components"; Flags: ignoreversion ; Components: a1 a2 a3;

[Components]
Name: a1; Description: "安装Components_1"; Types: Full Compact Custom ;
Name: a2; Description: "安装Components_2"; Types:
Name: a3; Description: "安装Components_3"; Types: Full







离线969511048

发帖
151
金钱
1440
威望
144
只看该作者 7 发表于: 2013-12-11
嘻嘻,请虎版帮最后个忙
离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 8 发表于: 2013-12-12
不知道是你表达有欠缺还是我中文理解能力有问题,你说的很多地方我还是不懂。

既然你提供两个选择:
ComboBox3.Items.Append('32M以上');
ComboBox3.Items.Append('32M以下');

也就是说用户只能选择 “32M以上” 或者 “32M以下”,为什么又要固定选择内容为 “32M” 呢?这是不可能的。你的意思是本来有三个选择:
ComboBox3.Items.Append('32M以上');
ComboBox3.Items.Append('32M');
ComboBox3.Items.Append('32M以下');
但是希望在一定条件下只有 “32M” 这个选择吗?如果是这样,那么那个条件又是什么呢?


你图2中的4个选框总是有内容的,所以我不理解你说的 “未选择图2选项” 指的是什么。


图3中你使用的是 RadioButton,也就是说在多个选项中只能选择一个,不是第1个就是第2个,是第1个就不是第2个。所以我不了解你说的 “图3选项不可选” 指的是什么。


既然图3的选项总是被选择的,那么图5说的情况就不存在。


如果那两个纽扣选项都没有选择的话,"下一步" 按钮将无法选择。相应的代码是:

procedure RadioButton1a2Onclick(Sender: TObject);
begin
  WizardForm.NextButton.Enabled := RadioButton1.Checked or RadioButton2.Checked;
end;

RadioButton1.OnClick:= @RadioButton1a2Onclick;

RadioButton2.OnClick:= @RadioButton1a2Onclick;

我不理解你说的 “根据以下内容更改实现“4.选择中文版安装a1,选择英文版安装a2”” 指的是什么。


编写代码是需要很严谨的逻辑的。在没有理解你的意思的情况下,我也不能瞎帮你修改代码,Sorry!

离线969511048

发帖
151
金钱
1440
威望
144
只看该作者 9 发表于: 2013-12-12
版主别难为我了,我语文英语都不及格的

这个实现不了,下一步按钮可以点过去。。。。
我这段Code是可以单独编辑的,请版主测试一下。。。。