Вопрос Делать неактивным FolderTreeView при отмеченном чекбоксе

Дамир

Новичок
Помогите подправить скрипт
Код:
#define AppName "Test"
#define AppVersion "1.7.2.1657"
#define AppPublisher "DD"
#define ExeName "test.exe"

[Setup]
AppId={{78348E0C-BA8C-4B07-B7EF-C19894A4849F}
AppName={#AppName}
AppVersion={#AppVersion}
VersionInfoVersion={#AppVersion}
;AppVerName={#AppName} {#AppVersion}
AppPublisher={#AppPublisher}
DefaultDirName={pf}\{#AppName}
DefaultGroupName={#AppName}
AllowNoIcons=yes
OutputDir=G:\
OutputBaseFilename=setup
SetupIconFile=G:\i.ico
Compression=lzma2/ultra64
SolidCompression=yes

[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 0,6.1

[Files]
Source: "G:\test.exe"; DestDir: "{app}"; Flags: ignoreversion

[Icons]
Name: "{group}\{#AppName}"; Filename: "{app}\{#ExeName}"
Name: "{group}\{cm:UninstallProgram,{#AppName}}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\{#AppName}"; Filename: "{app}\{#ExeName}"; Tasks: desktopicon
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#AppName}"; Filename: "{app}\{#ExeName}"; Tasks: quicklaunchicon

[Run]
Filename: "{app}\{#ExeName}"; Description: "{cm:LaunchProgram,{#StringChange(AppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent

[Code]
var
  TDV: TFolderTreeView;
  TFV: TStartMenuFolderTreeView;

procedure TDVOnChange(Sender: TObject);
begin
  WizardForm.DirEdit.Text:= AddBackslash(TDV.Directory)+'{#AppName}';
end;

procedure TFVOnChange(Sender: TObject);
begin
  WizardForm.GroupEdit.Text:= AddBackslash(TFV.Directory)+'{#AppName}';
end;

procedure InitializeWizard();
begin
  ISWin7AddCtrl(Copyright.Handle);
  TDV:= TFolderTreeView.Create(WizardForm);
  TDV.Top:= WizardForm.DirEdit.Top+28;
  TDV.Width:= 417;
  TDV.Height:= 100;
  TDV.OnChange:= @TDVOnChange;
  TDV.Parent:= WizardForm.SelectDirPage;

  TFV:= TStartMenuFolderTreeView.Create(WizardForm);
  TFV.Top:= WizardForm.GroupEdit.Top+28;
  TFV.Width:= 417;
  TFV.Height:= 100;
  TFV.SetPaths(ExpandConstant('{userprograms}'),ExpandConstant('{commonprograms}'),ExpandConstant('{userstartup}'),ExpandConstant('{commonstartup}'));
  TFV.OnChange:= @TFVOnChange;
  TFV.Parent:= WizardForm.SelectProgramGroupPage;
end;
Как сделать что-бы при установке галки на пункте "Не создавать папку в меню пуск", выбор папки через менюшку становился неактивным как и выбор через "Обзор"?
 

YURSHAT

Тех. админ
Администратор
Дамир
Код:
#define AppName "Test"
#define AppVersion "1.7.2.1657"
#define AppPublisher "DD"
#define ExeName "test.exe"

[Setup]
AppId={{78348E0C-BA8C-4B07-B7EF-C19894A4849F}
AppName={#AppName}
AppVersion={#AppVersion}
VersionInfoVersion={#AppVersion}
;AppVerName={#AppName} {#AppVersion}
AppPublisher={#AppPublisher}
DefaultDirName={pf}\{#AppName}
DefaultGroupName={#AppName}
AllowNoIcons=yes
OutputDir=G:\
OutputBaseFilename=setup
SetupIconFile=G:\i.ico
Compression=lzma2/ultra64
SolidCompression=yes

[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 0,6.1

[Files]
Source: "G:\test.exe"; DestDir: "{app}"; Flags: ignoreversion

[Icons]
Name: "{group}\{#AppName}"; Filename: "{app}\{#ExeName}"
Name: "{group}\{cm:UninstallProgram,{#AppName}}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\{#AppName}"; Filename: "{app}\{#ExeName}"; Tasks: desktopicon
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#AppName}"; Filename: "{app}\{#ExeName}"; Tasks: quicklaunchicon

[Run]
Filename: "{app}\{#ExeName}"; Description: "{cm:LaunchProgram,{#StringChange(AppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent

[Code]
var
  TDV: TFolderTreeView;
  TFV: TStartMenuFolderTreeView;
  OldEvent_NoIconsCheckClick: TNotifyEvent;

procedure TDVOnChange(Sender: TObject);
begin
  WizardForm.DirEdit.Text:= AddBackslash(TDV.Directory)+'{#AppName}';
end;

procedure TFVOnChange(Sender: TObject);
begin
  WizardForm.GroupEdit.Text:= AddBackslash(TFV.Directory)+'{#AppName}';
end;

procedure NoIconsCheckClick(Sender: TObject);
begin
  OldEvent_NoIconsCheckClick(Sender);
  TFV.Enabled := not WizardForm.NoIconsCheck.Checked;
end;

procedure InitializeWizard();
begin
  ISWin7AddCtrl(Copyright.Handle);
  TDV:= TFolderTreeView.Create(WizardForm);
  TDV.Top:= WizardForm.DirEdit.Top+28;
  TDV.Width:= 417;
  TDV.Height:= 100;
  TDV.OnChange:= @TDVOnChange;
  TDV.Parent:= WizardForm.SelectDirPage;

  TFV:= TStartMenuFolderTreeView.Create(WizardForm);
  TFV.Top:= WizardForm.GroupEdit.Top+28;
  TFV.Width:= 417;
  TFV.Height:= 100;
  TFV.SetPaths(ExpandConstant('{userprograms}'),ExpandConstant('{commonprograms}'),ExpandConstant('{userstartup}'),ExpandConstant('{commonstartup}'));
  TFV.OnChange:= @TFVOnChange;
  TFV.Parent:= WizardForm.SelectProgramGroupPage;

  OldEvent_NoIconsCheckClick := WizardForm.NoIconsCheck.OnClick;
  WizardForm.NoIconsCheck.OnClick := @NoIconsCheckClick;
end;
 
Сверху