Ветеран
Сообщения: 517
Благодарности: 314
|
Профиль
|
Отправить PM
| Цитировать
Цитата ZVSRus:
Как в данном скрипте прикрутить кнопку "Сброс" к PortableCheck »
|
Так, что ли?
Скрытый текст
Код: 
#define Name "Test"
[Setup]
SourceDir=.
OutputDir=Setup
AppName=Test
AppVerName=Test
DefaultDirName={pf}\Test
DefaultGroupName=Test
OutputBaseFilename=Setup
AllowNoIcons=true
[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl
[Files]
Source: {win}\help\*; DestDir: {app}\Files; Flags: external recursesubdirs createallsubdirs;
[Icons]
Name: {group}\MyProg; Filename: {app}; WorkingDir: {app}
[CustomMessages]
russian.RestoreButton=Сброс
[Code]
var
ISCustomPage1: TWizardPage;
Installer: TNewRadioButton;
Portable: TNewRadioButton;
procedure RedesignWizardForm;
begin
ISCustomPage1 := CreateCustomPage(wpWelcome, 'ISCustomPage1_Caption', 'ISCustomPage1_Description');
{ Installer }
Installer := TNewRadioButton.Create(WizardForm);
with Installer do
begin
Parent := ISCustomPage1.Surface;
Left := ScaleX(16);
Top := ScaleY(32);
Width := ScaleX(113);
Height := ScaleY(17);
Caption := 'Установка';
Checked := True
end;
{ Portable }
Portable := TNewRadioButton.Create(WizardForm);
with Portable do
begin
Parent := ISCustomPage1.Surface;
Left := ScaleX(16);
Top := ScaleY(72);
Width := ScaleX(113);
Height := ScaleY(17);
Caption := 'Распаковка';
end;
Installer.TabOrder := 0;
Portable.TabOrder := 1;
end;
#define A = (Defined UNICODE) ? "W" : "A"
const
DRIVE_CDROM = 5;
var
BrowseForm: TSetupForm;
BrowseForm2: TSetupForm;
DirTreeView: TFolderTreeView;
DirFolderTreeView: TStartMenuFolderTreeView;
EditTreeView: TNewEdit;
EditFolderTreeView: TNewEdit;
DB_Button: TNewButton;
GB_Button: TNewButton;
OldEvent_NoIconsCheckClick: TNotifyEvent;
OKButton, ButtonNewFolder: TButton;
function GetDriveType(nDrive: string): Longint; external 'GetDriveType{#A}@kernel32.dll stdcall';
function CDROM(Drive: String): Boolean;
begin
Result:= GetDriveType(Drive) = 5;
end;
procedure GetDrive(Sender: TObject);
var
Path, Path1: String;
begin
Path:= ExtractFileDrive(DirTreeView.Directory);
Path1:= ExtractFileDrive(EditTreeView.Text);
ButtonNewFolder.Enabled:= not CDROM(Path);
OKButton.Enabled:= not CDROM(Path1);
if CDROM(Path1) then MsgBox('Установка на выбранный диск невозможна!', mbError, MB_OK);
end;
procedure DirTreeViewChange(Sender: TObject);
begin
if DirTreeView.Directory <> WizardForm.DirEdit.Text then begin
EditTreeView.Text := AddBackslash(DirTreeView.Directory) + '{#Name}';
GetDrive(nil);
end else
EditTreeView.Text := DirTreeView.Directory;
end;
procedure DirFolderTreeViewChange(Sender: TObject);
begin
if DirFolderTreeView.Directory <> WizardForm.GroupEdit.Text then
EditFolderTreeView.Text := AddBackslash(DirFolderTreeView.Directory) + '{#Name}' else
EditFolderTreeView.Text := DirFolderTreeView.Directory;
end;
procedure BrowseFormButtonsTreeViewOnClick(Sender: TObject);
begin
case TButton(Sender).Tag of
1: begin
////////////////////////////////////////////////////////////////////
if Portable.Checked then
EditTreeView.Text := ( AddBackslash(ExpandConstant('{#SetupSetting("DefaultDirName")}')) + 'Portable' )
else EditTreeView.Text := RemoveBackslashUnlessRoot(ExpandConstant('{#SetupSetting("DefaultDirName")}'));
/////////////////////////////////////////////////////////////////////
// EditTreeView.Text := RemoveBackslashUnlessRoot(ExpandConstant('{#SetupSetting("DefaultDirName")}'));
GetDrive(nil);
end;
2: begin
DirTreeView.CreateNewDirectory(SetupMessage(msgNewFolderName));
EditTreeView.Text := AddBackslash(DirTreeView.Directory) + '{#Name}';
end;
3: if EditTreeView.Text <> WizardForm.DirEdit.Text then WizardForm.DirEdit.Text := EditTreeView.Text;
end;
end;
procedure BrowseFormButtonsFolderTreeViewOnClick(Sender: TObject);
begin
case TButton(Sender).Tag of
4: EditFolderTreeView.Text := RemoveBackslashUnlessRoot(ExpandConstant('{#Name}'));
5: begin
DirFolderTreeView.CreateNewDirectory(SetupMessage(msgNewFolderName));
EditFolderTreeView.Text := AddBackslash(DirFolderTreeView.Directory) + '{#Name}';
end;
6: if EditFolderTreeView.Text <> WizardForm.GroupEdit.Text then WizardForm.GroupEdit.Text := EditFolderTreeView.Text;
end;
end;
procedure BrowseDirTreeViewClick(Sender: TObject);
begin
BrowseForm := CreateCustomForm();
with BrowseForm do
begin
Width := ScaleX(413);
Height := ScaleY(361);
Caption := SetupMessage(msgBrowseDialogTitle);
Position := poScreenCenter;
with TLabel.Create(nil) do
begin
SetBounds(ScaleX(12), ScaleY(12), ScaleX(207), ScaleY(16));
Caption := SetupMessage(msgBrowseDialogLabel);
Parent := BrowseForm;
Font.Size := 8;
end;
DirTreeView := TFolderTreeView.Create(nil)
with DirTreeView do
begin
SetBounds(ScaleX(16), ScaleY(64), ScaleX(375), ScaleY(225));
OnChange := @DirTreeViewChange;
Parent := BrowseForm;
end;
EditTreeView := TNewEdit.Create(nil);
with EditTreeView do
begin
SetBounds(ScaleX(16), ScaleY(36), ScaleX(376), ScaleY(21));
Text := DirTreeView.Directory;
Parent := BrowseForm;
Font.Color := clWindowText;
end;
with TButton.Create(nil) do
begin
SetBounds(ScaleX(16), ScaleY(301), ScaleX(90), ScaleX(23));
Parent := BrowseForm;
Caption := SetupMessage(msgButtonCancel);
ModalResult := mrCancel;
end;
with TButton.Create(nil) do
begin
SetBounds(ScaleX(111), ScaleY(301), ScaleX(90), ScaleY(23));
Parent := BrowseForm;
Caption := ExpandConstant('{cm:RestoreButton}');
Tag := 1;
OnClick := @BrowseFormButtonsTreeViewOnClick;
end;
ButtonNewFolder:= TButton.Create(nil)
with ButtonNewFolder do
begin
SetBounds(ScaleX(206), ScaleY(301), ScaleX(90), ScaleY(23));
Parent := BrowseForm;
Caption := SetupMessage(msgButtonNewFolder);
Tag := 2;
OnClick := @BrowseFormButtonsTreeViewOnClick;
end;
OKButton:= TButton.Create(nil);
with OKButton do
begin
SetBounds(ScaleX(301), ScaleY(301), ScaleX(90), ScaleY(23));
Parent := BrowseForm;
Caption := SetupMessage(msgButtonOK);
Tag := 3;
OnClick := @BrowseFormButtonsTreeViewOnClick;
ModalResult := mrOk;
end;
DirTreeView.ChangeDirectory(AddBackslash(WizardForm.DirEdit.Text), True);
ShowModal;
Free;
end;
end;
procedure BrowseDirFolderTreeViewClick(Sender: TObject);
begin
BrowseForm2 := CreateCustomForm();
with BrowseForm2 do
begin
Width := ScaleX(413);
Height := ScaleY(361);
Caption := SetupMessage(msgBrowseDialogTitle);
Position := poScreenCenter;
with TLabel.Create(nil) do
begin
SetBounds(ScaleX(12), ScaleY(12), ScaleX(207), ScaleY(16));
Caption := SetupMessage(msgBrowseDialogLabel);
Parent := BrowseForm2;
Font.Size := 8;
end;
DirFolderTreeView := TStartMenuFolderTreeView.Create(nil)
with DirFolderTreeView do
begin
SetBounds(ScaleX(16), ScaleY(64), ScaleX(375), ScaleY(225));
SetPaths(ExpandConstant('{userprograms}'),ExpandConstant('{commonprograms}'),ExpandConstant('{userstartup}'),ExpandConstant('{commonstartup}'));
OnChange := @DirFolderTreeViewChange;
Parent := BrowseForm2;
end;
EditFolderTreeView := TNewEdit.Create(nil);
with EditFolderTreeView do
begin
SetBounds(ScaleX(16), ScaleY(36), ScaleX(376), ScaleY(21));
Text := DirFolderTreeView.Directory;
Parent := BrowseForm2;
Font.Color := clWindowText;
end;
with TButton.Create(nil) do
begin
SetBounds(ScaleX(16), ScaleY(301), ScaleX(90), ScaleX(23));
Parent := BrowseForm2;
Caption := SetupMessage(msgButtonCancel);
ModalResult := mrCancel;
end;
with TButton.Create(nil) do
begin
SetBounds(ScaleX(111), ScaleY(301), ScaleX(90), ScaleY(23));
Parent := BrowseForm2;
Caption := ExpandConstant('{cm:RestoreButton}');
Tag := 4;
OnClick := @BrowseFormButtonsFolderTreeViewOnClick;
end;
with TButton.Create(nil) do
begin
SetBounds(ScaleX(206), ScaleY(301), ScaleX(90), ScaleY(23));
Parent := BrowseForm2;
Caption := SetupMessage(msgButtonNewFolder);
Tag := 5;
OnClick := @BrowseFormButtonsFolderTreeViewOnClick;
end;
with TButton.Create(nil) do
begin
SetBounds(ScaleX(301), ScaleY(301), ScaleX(90), ScaleY(23));
Parent := BrowseForm2;
Caption := SetupMessage(msgButtonOK);
Tag := 6;
OnClick := @BrowseFormButtonsFolderTreeViewOnClick;
ModalResult := mrOk;
end;
DirFolderTreeView.ChangeDirectory(AddBackslash(WizardForm.GroupEdit.Text), True);
ShowModal;
Free;
end;
end;
procedure NoIconsCheckClick(Sender: TObject);
begin
OldEvent_NoIconsCheckClick(Sender);
GB_Button.Enabled := not WizardForm.NoIconsCheck.Checked;
end;
procedure InitializeWizard();
begin
RedesignWizardForm;
OldEvent_NoIconsCheckClick := WizardForm.NoIconsCheck.OnClick;
WizardForm.NoIconsCheck.OnClick := @NoIconsCheckClick;
WizardForm.DirBrowseButton.Hide;
DB_Button := TNewButton.create(WizardForm);
with DB_Button do
begin
Parent := WizardForm.SelectDirPage;
SetBounds(WizardForm.DirBrowseButton.Left, WizardForm.DirBrowseButton.Top, WizardForm.DirBrowseButton.Width, WizardForm.DirBrowseButton.Height - ScaleY(1));
Caption := SetupMessage(msgButtonBrowse);
OnClick := @BrowseDirTreeViewClick;
end;
WizardForm.GroupBrowseButton.Hide;
GB_Button := TNewButton.create(WizardForm);
with GB_Button do
begin
Parent := WizardForm.SelectProgramGroupPage;
SetBounds(WizardForm.GroupBrowseButton.Left, WizardForm.GroupBrowseButton.Top, WizardForm.GroupBrowseButton.Width, WizardForm.GroupBrowseButton.Height - ScaleY(1));
Caption := SetupMessage(msgButtonBrowse);
OnClick := @BrowseDirFolderTreeViewClick;
end;
end;
[ISFormDesigner]
WizardForm=FF0A005457495A415244464F524D003010C403000054504630F10B5457697A617264466F726D0A57697A617264466F726D0C436C69656E744865696768740368010B436C69656E74576964746803F1010C4578706C696369744C65667402000B4578706C69636974546F7002000D4578706C6963697457696474680301020E4578706C69636974486569676874038E010D506978656C73506572496E636802600A54657874486569676874020D00F10C544E65774E6F7465626F6F6B0D4F757465724E6F7465626F6F6B00F110544E65774E6F7465626F6F6B506167650B57656C636F6D6550616765084E65787450616765070D4953437573746F6D50616765310D4578706C69636974576964746803F1010E4578706C696369744865696768740339010000F110544E65774E6F7465626F6F6B5061676509496E6E6572506167650D4578706C69636974576964746803F1010E4578706C6963697448656967687403390100F10C544E65774E6F7465626F6F6B0D496E6E65724E6F7465626F6F6B00F110544E65774E6F7465626F6F6B506167650B4C6963656E7365506167650C50726576696F757350616765070D4953437573746F6D50616765310D4578706C69636974576964746803A1010E4578706C6963697448656967687403ED000000F110544E65774E6F7465626F6F6B506167650D53656C65637
|