论坛风格切换切换到宽版
  • 4185阅读
  • 4回复

Innosetup 路径选择 [复制链接]

上一主题 下一主题
离线ricetendto2
 

发帖
31
金钱
310
威望
31
只看楼主 倒序阅读 0 发表于: 2015-01-27

各位大神,我现在遇到一个问题。Innosetup自带的点击“浏览” ,跳出选择路径页面,但是我现在想要把它的路径选择页面修改一下,请问怎么修改?
我想要将自带的路径选择页面也做成下面的一样,代码如下:

[Setup]
AppName=我的程序
AppVerName=我的程序 1.5
DefaultDirName={pf}\我的程序
DefaultGroupName=我的程序
[Files]
; 以下文件安装到主目录
Source: compiler:Examples\MyProg.exe; DestDir: {app}
; 以下文件安装到副目录
Source: compiler:Examples\Readme.txt; DestDir: {code:app2}
[Code]
var
  Label1: TLabel;
  NewEdit1: TNewEdit;
  NewButton1: TNewButton;
procedure ButtonOnClick(Sender: TObject);   // 点击“浏览”按钮后的操作
var newDir: string;
begin
if BrowseForFolder('请选择要将插件安装到哪里!', newDir, false) then
  NewEdit1.Text := newDir;
end;
procedure RedesignWizardForm;
begin
  { Label1 }
  Label1 := TLabel.Create(WizardForm);
  with Label1 do
  begin
    Name := 'Label1';
    Parent := WizardForm.SelectDirPage;
    AutoSize := False;
    Caption := '插件将安装到以下目录:';
    Transparent := False;
    Left := ScaleX(0);
    Top := ScaleY(155);
    Width := ScaleX(327);
    Height := ScaleY(20);
  end;
  with WizardForm.DiskSpaceLabel do
  begin
    Top := ScaleY(107);
  end;
  { NewEdit1 }
  NewEdit1 := TNewEdit.Create(WizardForm);
  with NewEdit1 do
  begin
    Name := 'NewEdit1';
    Parent := WizardForm.SelectDirPage;
    Left := ScaleX(0);
    Top := ScaleY(174);
    Width := ScaleX(321);
    Height := ScaleY(22);
    Text:= ExpandConstant('{userappdata}\ABC');  // 默认副目录
  end;
  { NewButton1 }
  NewButton1 := TNewButton.Create(WizardForm);
  with NewButton1 do
  begin
    Name := 'NewButton1';
    Parent := WizardForm.SelectDirPage;
    Left := ScaleX(336);
    Top := ScaleY(174);
    Width := ScaleX(81);
    Height := ScaleY(24);
    Caption := '浏览(S)...';
    OnClick:= @ButtonOnClick;
  end;
  NewEdit1.TabOrder := 5;
  NewButton1.TabOrder := 6;
end;
procedure InitializeWizard();
begin
  RedesignWizardForm;
end;
function app2(Param: String): String;   // 副目录
begin
  Result := NewEdit1.Text;
end;
离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 1 发表于: 2015-01-27
你的问题是什么?
离线ricetendto2

发帖
31
金钱
310
威望
31
只看该作者 2 发表于: 2015-01-27
回 1楼(gnatix) 的帖子
gnatix:你的问题是什么? (2015-01-27 14:22) 

我想要点击Innosetup自带的选择路径的按钮 “浏览”,使用操作系统的弹出框格式。要不然,我做多目录安装时,上下两个安装路径选择方式会有区别
离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 3 发表于: 2015-01-28
你的意思是希望点击上面那个“浏览”按钮后所弹出的窗口跟点击下面那个“浏览”按钮时所弹出的窗口是一样的,对吗?

procedure Button1OnClick(Sender: TObject);   // 点击第一个“浏览”按钮后的操作
var newDir: string;
begin
if BrowseForFolder('请选择要将程序安装到哪里!', newDir, false) then
  wizardform.DirEdit.Text := newDir;
end;


procedure RedesignWizardForm;
begin
// 其它语句
Wizardform.DirBrowseButton.OnClick := @Button1OnClick;
end;
离线ricetendto2

发帖
31
金钱
310
威望
31
只看该作者 4 发表于: 2015-01-28
回 3楼(gnatix) 的帖子
gnatix:你的意思是希望点击上面那个“浏览”按钮后所弹出的窗口跟点击下面那个“浏览”按钮时所弹出的窗口是一样的,对吗?procedure Button1OnClick(Sender: TObject);   // 点击第一个“浏览”按钮后 .. (2015-01-28 05:05) 

非常感谢!!!虎老大威武,就是要这个效果