![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 8] |
|
Скрипты Inno Setup. Помощь и советы [часть 8]
|
Ветеран Сообщения: 1274 |
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Скрипты Inno Setup. Помощь и советы (Archive Pack 1):
Скрипты Inno Setup. Помощь и советы [часть 6] Скрипты Inno Setup. Помощь и советы [часть 7] |
|
Отправлено: 08:52, 02-02-2015 |
![]() Ветеран Сообщения: 863
|
Профиль | Отправить PM | Цитировать Aneshoharilian, в изначальном вашем огризке было wpSelectProgramGroup а на скрине вы показываете страницу wpSelectDir, перейдите на следующую страницу и будет вам счастье или замените страницу в коде (с wpSelectProgramGroup на wpSelectDir) и отключите SelectProgramGroupPage, потому что она идет следующей....
|
------- Отправлено: 20:35, 30-01-2016 | #1271 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать Цитата Dodakaedr:
procedure CurPageChanged(CurPageID: Integer); begin if (CurPageID = wpSelectDir) or (CurPageID = wpReady) then WizardForm.NextButton.Caption := SetupMessage(msgButtonInstall) else if (CurPageID = wpFinished) then WizardForm.NextButton.Caption := SetupMessage(msgButtonFinish) else WizardForm.NextButton.Caption := SetupMessage(msgButtonNext); end; Доработанный код на основе ваших рекомендации ![]() ------------------------------------------------------------------------------ более правильный вариант,дает сбой с капчой procedure CurPageChanged(CurPageID: Integer); begin // On fresh install the last pre-install page is "Select Program Group". // On upgrade the last pre-install page is "Read to Install" // (forced even with DisableReadyPage) if (CurPageID = wpSelectProgramGroup) or (CurPageID = wpReady) then WizardForm.NextButton.Caption := SetupMessage(msgButtonInstall) // On the Finished page, use "Finish" caption. else if (CurPageID = wpFinished) then WizardForm.NextButton.Caption := SetupMessage(msgButtonFinish) // On all other pages, use "Next" caption. else WizardForm.NextButton.Caption := SetupMessage(msgButtonNext); end; |
|
Последний раз редактировалось Aneshoharilian, 30-01-2016 в 21:14. Отправлено: 21:08, 30-01-2016 | #1272 |
![]() Ветеран Сообщения: 863
|
Профиль | Отправить PM | Цитировать Цитата Aneshoharilian:
Скрытый текст
#define MyAppName "My Program" #define MyAppVersion "1.5" [Setup] AppName={#MyAppName} AppVersion={#MyAppVersion} DefaultDirName={pf}\{#MyAppName} DefaultGroupName={#MyAppName} DisableReadyPage=yes [Languages] Name: "default"; MessagesFile: "compiler:Default.isl" [icons] Name: "{userdesktop}\bla-bla"; Filename: "{app}\bla-bla.exe"; [code] procedure CurPageChanged(CurPageID: Integer); begin if CurPageID = wpSelectProgramGroup then WizardForm.NextButton.Caption := 'Install'; end; |
|
------- Отправлено: 21:26, 30-01-2016 | #1273 |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать |
Отправлено: 12:22, 31-01-2016 | #1274 |
Старожил Сообщения: 212
|
Профиль | Отправить PM | Цитировать Aneshoharilian, перед else не ставится ";".
|
------- Отправлено: 12:56, 31-01-2016 | #1275 |
Старожил Сообщения: 292
|
Профиль | Отправить PM | Цитировать Как в данном скрипте прикрутить кнопку "Сброс" к 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 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=FF0A005457495A415244464F524D003010C403000054504630F10B5457697A617264466F726D0A57697A617264466F726D0C436C69656E744865696768740368010B436C69656E74576964746803F1010C4578706C696369744C65667402000B4578706C69636974546F7002000D4578706C6963697457696474680301020E4578706C69636974486569676874038E010D506978656C73506572496E636802600A54657874486569676874020D00F10C544E65774E6F7465626F6F6B0D4F757465724E6F7465626F6F6B00F110544E65774E6F7465626F6F6B506167650B57656C636F6D6550616765084E65787450616765070D4953437573746F6D50616765310D4578706C69636974576964746803F1010E4578706C696369744865696768740339010000F110544E65774E6F7465626F6F6B5061676509496E6E6572506167650D4578706C69636974576964746803F1010E4578706C6963697448656967687403390100F10C544E65774E6F7465626F6F6B0D496E6E65724E6F7465626F6F6B00F110544E65774E6F7465626F6F6B506167650B4C6963656E7365506167650C50726576696F757350616765070D4953437573746F6D50616765310D4578706C69636974576964746803A1010E4578706C6963697448656967687403ED000000F110544E65774E6F7465626F6F6B506167650D53656C656374446972506167650D4578706C69636974576964746803A1010E4578706C6963697448656967687403ED000000F110544E65774E6F7465626F6F6B506167651653656C65637450726F6772616D47726F7570506167650D4578706C69636974576964746803A1010E4578706C6963697448656967687403ED00000010544E65774E6F7465626F6F6B506167650D4953437573746F6D50616765310743617074696F6E06154953437573746F6D50616765315F43617074696F6E0B4465736372697074696F6E06194953437573746F6D50616765315F4465736372697074696F6E0C50726576696F757350616765070B57656C636F6D6550616765084E65787450616765070B4C6963656E736550616765000F544E6577526164696F427574746F6E09496E7374616C6C6572044C656674021003546F70022005576964746802710648656967687402110743617074696F6E120900000023044104420430043D043E0432043A043004085461624F72646572020000000F544E6577526164696F427574746F6E08506F727461626C65044C656674021003546F70024805576964746802710648656967687402110743617074696F6E120A0000002004300441043F0430043A043E0432043A043004085461624F72646572020100000000000000 |
Последний раз редактировалось ZVSRus, 01-02-2016 в 19:26. Отправлено: 17:27, 31-01-2016 | #1276 |
Ветеран Сообщения: 517
|
Профиль | Отправить PM | Цитировать Цитата ZVSRus:
Скрытый текст
#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 |
|
Отправлено: 19:54, 01-02-2016 | #1277 |
Старожил Сообщения: 292
|
Профиль | Отправить PM | Цитировать saurn,
Цитата Так, что ли?:
|
|
Отправлено: 20:44, 01-02-2016 | #1278 |
Ветеран Сообщения: 517
|
Профиль | Отправить PM | Цитировать Цитата ZVSRus:
Скрытый текст
#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; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// _szPath: String; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 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 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// EditTreeView.Text := _szPath; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 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; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// procedure CurPageChanged(CurPageID: Integer); begin case CurPageID of wpSelectDir: begin case Installer.Checked of False: _szPath := ( AddBackslash(ExpandConstant('{src}')) + 'Portable' ); True: _szPath := RemoveBackslashUnlessRoot(ExpandConstant('{#SetupSetting("DefaultDirName")}') ); end; WizardForm.DirEdit.Text := _szPath; end; end; end; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// [ISFormDesigner] WizardForm=FF0A005457495A415244464F524D003010C403000054504630F10B5457697A617264466F726D0A57697A617264466F726D0C436C69656E744865696768740368010B436C69656E74576964746803F1010C4578706C696369744C65667402000B4578706C69636974546F7002000D4578706C6963697457696474680301020E4578706C69636974486569676874038E010D506978656C73506572496E636802600A54657874486569676874020D00F10C544E65774E6F7465626F6F6B0D4F757465724E6F7465626F6F6B00F110544E65774E6F7465626F6F6B506167650B57656C636F6D6550616765084E65787450616765070D4953437573746F6D50616765310D4578706C69636974576964746803F1010E4578706C696369744865696768740339010000F110544E65774E6F7465626F6F6B5061676509496E6E6572506167650D4578706C69636974576964746803F1010E4578706C6963697448656967687403390100F10C544E65774E6F7465626F6F6B0D496E6E65724E6F7465626F6F6B00F110544E65774E6F7465626F6F6B506167650B4C6963656E7365506167650C50726576696F757350616765070D4953437573746F6D50616765310D4578706C69636974576964746803A1010E4578706C6963697448656967687403ED000000F110544E65774E6F7465626F6F6B506167650D53656C65637 P.S. Точнее формулируйте вопрос. |
|
Последний раз редактировалось saurn, 01-02-2016 в 21:25. Отправлено: 20:55, 01-02-2016 | #1279 |
Старожил Сообщения: 292
|
Профиль | Отправить PM | Цитировать saurn,
Цитата Точнее формулируйте вопрос.:
|
|
Отправлено: 21:43, 01-02-2016 | #1280 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты Inno Setup. Помощь и советы [часть 7] | El Sanchez | Автоматическая установка приложений | 2499 | 02-02-2015 08:59 | |
Скрипты Inno Setup. Помощь и советы [часть 6] | El Sanchez | Автоматическая установка приложений | 2494 | 10-03-2014 11:51 | |
Скрипты Inno Setup. Помощь и советы [часть 5] | El Sanchez | Автоматическая установка приложений | 1999 | 28-03-2013 19:09 | |
Скрипты Inno Setup. Помощь и советы [часть 4] | El Sanchez | Автоматическая установка приложений | 2099 | 22-05-2012 23:16 | |
Скрипты Inno Setup. Помощь и советы [часть 3] | Serega | Автоматическая установка приложений | 3755 | 26-10-2011 17:58 |
|