论坛风格切换切换到宽版
  • 3475阅读
  • 8回复

(已解决)为什么编译出来运行后,点击显示细节,是空白的画面? [复制链接]

上一主题 下一主题
离线373723699
 

发帖
38
金钱
380
威望
38
只看楼主 倒序阅读 0 发表于: 2013-11-21
[Setup]
AppName=My Program
AppVerName=My Program version 1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
UninstallDisplayIcon={app}\MyProg.exe
Compression=lzma
SolidCompression=yes


[Files]
Source: "C:\Users\Administrator\Desktop\IAP V2.0.0.13\IAPdata\*"; DestDir: "{app}\\IAPdata"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "C:\Users\Administrator\Desktop\IAP V2.0.0.13\IAPlogic\*"; DestDir: "{app}\\IAPlogic"; Flags: ignoreversion recursesubdirs createallsubdirs  
Source: "C:\Users\Administrator\Desktop\IAP V2.0.0.13\IAPplant\*"; DestDir: "{app}\\IAPplant"; Flags: ignoreversion recursesubdirs createallsubdirs
[ISFormDesigner]
WizardForm=FF0A005457495A415244464F524D0030104E05000054504630F10B5457697A617264466F726D0A57697A617264466F726D0C436C69656E744865696768740366010B436C69656E74576964746803EF010C4578706C696369744C65667402000B4578706C69636974546F7002000D4578706C6963697457696474680301020E4578706C69636974486569676874038E010D506978656C73506572496E636802600A54657874486569676874020D00F10C544E65774E6F7465626F6F6B0D4F757465724E6F7465626F6F6B00F110544E65774E6F7465626F6F6B506167650B57656C636F6D65506167650D4578706C69636974576964746803F1010E4578706C696369744865696768740339010000F110544E65774E6F7465626F6F6B5061676509496E6E6572506167650D4578706C69636974576964746803F1010E4578706C6963697448656967687403390100F10C544E65774E6F7465626F6F6B0D496E6E65724E6F7465626F6F6B00F110544E65774E6F7465626F6F6B506167650B4C6963656E7365506167650D4578706C69636974576964746803A1010E4578706C6963697448656967687403ED000000F110544E65774E6F7465626F6F6B506167651453656C656374436F6D706F6E656E7473506167650D4578706C69636974576964746803A1010E4578706C6963697448656967687403ED0000F10C544E6577436F6D626F426F780A5479706573436F6D626F0A4974656D486569676874020D000000F110544E65774E6F7465626F6F6B506167651653656C65637450726F6772616D47726F7570506167650D4578706C69636974576964746803A1010E4578706C6963697448656967687403ED000000F110544E65774E6F7465626F6F6B506167650F53656C6563745461736B73506167650D4578706C69636974576964746803A1010E4578706C6963697448656967687403ED000000F110544E65774E6F7465626F6F6B50616765095265616479506167650D4578706C69636974576964746803A1010E4578706C6963697448656967687403ED000000F110544E65774E6F7465626F6F6B506167650D507265706172696E67506167650D4578706C69636974576964746803A1010E4578706C6963697448656967687403ED000000F110544E65774E6F7465626F6F6B506167650E496E7374616C6C696E67506167650D4578706C69636974576964746803A1010E4578706C6963697448656967687403ED0000F302000E544E6577537461746963546578740B5374617475734C6162656C0756697369626C65080000F202010B544E65774C697374426F7808446574614C697374044C656674020003546F70022C05576964746803A1010648656967687403B90007496D654E616D6512110000002D4E876520002800807B534F290020002D0020001C64D772FC62F397938F6551D56C0A4974656D486569676874020D085461624F7264657202040756697369626C6508094974656D496E64657802FF0000F302020E544E6577537461746963546578740D46696C656E616D654C6162656C0756697369626C65080000F10F544E657750726F67726573734261720D50726F6772657373476175676503546F7002120B4578706C69636974546F70021200000A544E6577427574746F6E0B53686F774465746142746E044C656674020503546F700238055769647468024B0648656967687402160743617074696F6E12080000003E663A79C67E82822800260044002900085461624F72646572020300000E544E65775374617469635465787409446574614C6162656C044C656674020003546F70020005576964746803A101064865696768740210084175746F53697A65080D53686F77416363656C4368617208085461624F72646572020500000000000000

[Code]
procedure ShowDetaBtnOnClick(Sender: TObject); forward;

{ RedesignWizardFormBegin } // 不要删除这一行代码。
// 不要修改这一段代码,它是自动生成的。
var
  DetaList: TNewListBox;
  ShowDetaBtn: TNewButton;
  DetaLabel: TNewStaticText;

procedure RedesignWizardForm;
begin
  with WizardForm do
  begin
    AutoScroll := False;
    ClientHeight := ScaleY(358);
    ClientWidth := ScaleX(495);
  end;

  with WizardForm.StatusLabel do
  begin
    Visible := False;
  end;

  { DetaList }
  DetaList := TNewListBox.Create(WizardForm);
  with DetaList do
  begin
    Name := 'DetaList';
    Parent := WizardForm.InstallingPage;
    Left := ScaleX(0);
    Top := ScaleY(44);
    Width := ScaleX(417);
    Height := ScaleY(185);
    Visible := False;
    ItemIndex := -1;
  end;

  with WizardForm.FilenameLabel do
  begin
    Visible := False;
  end;

  with WizardForm.ProgressGauge do
  begin
    Top := ScaleY(18);
  end;

  { ShowDetaBtn }
  ShowDetaBtn := TNewButton.Create(WizardForm);
  with ShowDetaBtn do
  begin
    Name := 'ShowDetaBtn';
    Parent := WizardForm.InstallingPage;
    Left := ScaleX(5);
    Top := ScaleY(56);
    Width := ScaleX(75);
    Height := ScaleY(22);
    Caption := '显示细节(&D)';
  end;

  { DetaLabel }
  DetaLabel := TNewStaticText.Create(WizardForm);
  with DetaLabel do
  begin
    Name := 'DetaLabel';
    Parent := WizardForm.InstallingPage;
    AutoSize := False;
    ShowAccelChar := False;
    Caption := '';
    Left := ScaleX(0);
    Top := ScaleY(0);
    Width := ScaleX(417);
    Height := ScaleY(16);
  end;

  ShowDetaBtn.TabOrder := 3;
  DetaList.TabOrder := 4;
  DetaLabel.TabOrder := 5;

{ ReservationBegin }
// 这一部分是提供给你的,你可以在这里输入一些补充代码。
ShowDetaBtn.OnClick := @ShowDetaBtnOnClick;
{ ReservationEnd }
end;
// 不要修改这一段代码,它是自动生成的。
{ RedesignWizardFormEnd } // 不要删除这一行代码。

procedure InitializeWizard();
begin
RedesignWizardForm;
end;

procedure ShowDetaBtnOnClick(Sender: TObject);
begin
ShowDetaBtn.Visible := False;
DetaList.Visible := True;
end;

procedure AddToDetaList;
begin
DetaLabel.Caption := '安装: ' + ExpandConstant(CurrentFileName);
DetaList.Items.Append(DetaLabel.Caption);
end;

procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpFinished then
begin
  // 跳回前一页,忽略完成页。
  DetaList.Items.Append('安装完成');
  WizardForm.PageNameLabel.Caption := '安装完成';
  WizardForm.PageDescriptionLabel.Caption := '安装程序已经成功完成安装。';
  DetaLabel.Caption := '完成';
  WizardForm.InnerNotebook.ActivePage := WizardForm.InstallingPage;
  WizardForm.OuterNotebook.ActivePage := WizardForm.InnerPage;
end;
end;

离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 1 发表于: 2013-11-22
楼主可以看看下面的示例,争取把脚本的每一句都搞懂。
http://bbs.hanzify.org/read-htm-tid-59487-page-1.html

具体到你的问题就是,你没有在复制文件时调用 AddToDetaList,注意示例中的 BeforeInstall: AddToDetaList;
[Files]
Source: "MyProg.exe"; DestDir: "{app}"; BeforeInstall: AddToDetaList
离线373723699

发帖
38
金钱
380
威望
38
只看该作者 2 发表于: 2013-11-22
回 1楼(gnatix) 的帖子
gnatix:楼主可以看看下面的示例,争取把脚本的每一句都搞懂。http://bbs.hanzify.org/read-htm-tid-59487-page-1.html 具体到你的问题就是,你没有在复制文件时调用 AddToDetaList,注意示例中的 BeforeInstall: AddToDetaList .. (2013-11-22 02:29) 

问题已经解决,谢谢。那请问为什么只有打开显示细节,怎样做才能有一个隐藏细节呢?同一个按钮的变化
离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 3 发表于: 2013-11-23
procedure ShowDetaBtnOnClick(Sender: TObject);
begin
DetaList.Visible := not DetaList.Visible;
if ShowDetaBtn.Caption = '显示细节(&D)' then
  ShowDetaBtn.Caption := '隐藏细节(&D)'
else
  ShowDetaBtn.Caption := '显示细节(&D)';
end;

控件大小你就自己调整吧。



离线373723699

发帖
38
金钱
380
威望
38
只看该作者 4 发表于: 2013-11-29
虎版,我想请问一下,因为我安装包有三种语言。简体中文,繁体中文,英文,如何才能让这个按钮功能在三种情况下正常显示,简体中文的目前正常

[Languages]
Name: "chinesetraditional"; MessagesFile: "E:\Inno Setup 5增强\Languages\Chinese Traditional.isl"
Name: "chinesesimp"; MessagesFile: "E:\Inno Setup 5增强\Languages\ChineseSimp.isl"
Name: "english"; MessagesFile: "E:\Inno Setup 5增强\Languages\English.isl"

可否帮我可以一下这部分代码?
离线373723699

发帖
38
金钱
380
威望
38
只看该作者 5 发表于: 2013-11-29
回 3楼(gnatix) 的帖子
gnatix:procedure ShowDetaBtnOnClick(Sender: TObject);beginDetaList.Visible := not DetaList.Visible;if ShowDetaBtn.Caption = '显示细节(&D)' then  ShowDetaBtn.Caption := '隐藏细节(&D)'....... (2013-11-23 01:14) 

虎版,我想请问一下,因为我安装包有三种语言。简体中文,繁体中文,英文,如何才能让这个按钮功能在三种情况下正常显示,简体中文的目前正常

[Languages]
Name: "chinesetraditional"; MessagesFile: "E:\Inno Setup 5增强\Languages\Chinese Traditional.isl"
Name: "chinesesimp"; MessagesFile: "E:\Inno Setup 5增强\Languages\ChineseSimp.isl"
Name: "english"; MessagesFile: "E:\Inno Setup 5增强\Languages\English.isl"

可否帮我可以一下这部分代码?
离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 6 发表于: 2013-11-30
下面以按钮的文字作为例子,其它文字你自己来搞定吧。

[CustomMessages]
chinesesimp.cmShowDetail=显示细节(&D)
chinesesimp.cmHideDetail=隐藏细节(&D)
chinesetraditional.cmShowDetail=XXXX(&D)
chinesetraditional.cmHideDetail=YYYY(&D)
english.cmShowDetail=Show &Detail
english.cmHideDetail=Hide &Detail


  { ShowDetaBtn }
  ShowDetaBtn := TNewButton.Create(WizardForm);
  with ShowDetaBtn do
  begin
    Name := 'ShowDetaBtn';
    Parent := WizardForm.InstallingPage;
    Left := ScaleX(5);
    Top := ScaleY(56);
    Width := ScaleX(75);
    Height := ScaleY(22);
    Caption := CustomMessage('cmShowDetail');
  end;

procedure ShowDetaBtnOnClick(Sender: TObject);
begin
DetaList.Visible := not DetaList.Visible;
if ShowDetaBtn.Caption = CustomMessage('cmShowDetail') then
  ShowDetaBtn.Caption := CustomMessage('cmHideDetail')
else
  ShowDetaBtn.Caption := CustomMessage('cmShowDetail');
end;
离线373723699

发帖
38
金钱
380
威望
38
只看该作者 7 发表于: 2013-11-30
回 6楼(gnatix) 的帖子
恩,谢谢可以了。还有一个问题,就是在“准备安装”的界面中,我有一个内容没有对应的翻译,如何改?




离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 8 发表于: 2013-11-30
说明你在某个地方没有使用 [CustomMessages] 段定义的消息(相当于常量),而是直接用了固定的(中文)文字。我没有你的脚本,所以我不能告诉你具体是在哪里,估计你是用了下面这样的方式吧:
[Types]
Name: all; Description: 全部

原则上,如果你要制作多语言的安装程序,你就不能直接用固定的文字,比如这里的 “全部”,而是要用 [CustomMessages] 段定义的消息,比如这样:
[Types]
Name: all; Description: "{cm:cmDescriptionTypeAll}"

至于如何使用 [CustomMessages] 段自定义消息,这个前面你已经知道了。