Ekspoint 2,122 #334074 Posted June 22, 2016 Как сделать оформление как у PROtankiдля начала прочти всю тему Quote Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #334094 Posted June 23, 2016 Как сделать оформление как у PROtanki Берёшь фотошоп, китайскую версию инно (или официальную, но чекЛистБоксы делаешь через ботву), саму ботву... И работаешь. Непонятно, что я написал? - Тогда берёшь примеры инно, читаешь форумы и изучаешь. Quote Share this post Link to post Short link Share on other sites
Ekspoint 2,122 #334107 Posted June 23, 2016 Ну или короткий ответ выше :) Quote Share this post Link to post Short link Share on other sites
Lom 48 #334113 Posted June 23, 2016 Ну или короткий ответ выше :) уж лучше всё это вместе)) Quote Share this post Link to post Short link Share on other sites
Lom 48 #334469 Posted June 25, 2016 (edited) народ подскажите если не трудно как в данном скрипте увеличить окно установщика ? ту картинку что появляется до открытия установщика могу сделать и больше и меньше а вот сам установщик в размерах ну никак не могу. ;#define Video [Setup] AppName=My Program AppVersion=1.5 DefaultDirName={pf}\My Program WizardImageFile=Fon.bmp OutputBaseFilename=2 [Files] Source: compiler:Dll Pack\IsPicture_for_all.dll; Flags: dontcopy Source: Fon.bmp; Flags: dontcopy #ifdef Video Source: XVID\fon.avi; Flags: dontcopy #endif [Code] //----------------------------------------- procedure Initialize(AhWnd,BhWnd:hWnd);external 'Initialize@{tmp}\IsPicture_for_all.dll stdcall delayload'; // Здесь указываем хендлы окон, на данный момент, лучше пока указывать // WizardForm.Handle - первым и MainForm.Handle вторым. //----------------------------------------- procedure XvidVideo(fn:String;Seth:string);external 'XvidVideo@{tmp}\IsPicture_for_all.dll stdcall delayload'; // Эта процедура загружает фоновое avi-видео. // Seth - задаем координаты через пробел в одинарных кавычках // пример: XvidVideo(ExpandConstant('{tmp}\fon.avi'), '351 201 236 132'); //----------------------------------------- procedure Deinitialize;external 'Deinitialize@{tmp}\IsPicture_for_all.dll stdcall delayload'; // отменяет свзывание форм между собой, выгружает видео. //----------------------------------------- function NewFont(Height:Integer;thickness,italic,underline,strikeout:DWORD;name:String):hWnd;external 'NewFont@{tmp}\IsPicture_for_all.dll stdcall delayload'; // Создает шрифты для замены стандартных. Необходима для борьбя с артефактами сглаживания. // Height, // высота шрифта // thickness, // насыщенность шрифта // italic, // курсив // underline, // Подчеркнутый // strikeout, // Зачеркнутый // name // имя шрифта //----------------------------------------- procedure SplashWnd(FileName:PAnsiChar;Time,width,height:Integer);external 'SplashWnd@{tmp}\IsPicture_for_all.dll stdcall delayload'; // Создает Splash-заставку // Прозрачность, пока, не поддерживается // FileName, // имя файла // Time, // скорость появления в миллисекундах // width, // ширина // height, // высота procedure EndSplash(Time1,Time2:Integer);external 'EndSplash@{tmp}\IsPicture_for_all.dll stdcall delayload'; // Закрываем Splash-заставку // Time1, // выжидание до закрытия в миллисекундах // Time, // скорость закрытия в миллисекундах //----------------------------------------- //----------------------------------------- function GetSystemMetrics(nIndex:Integer):integer; external '[email protected] stdcall delayload'; const TfonColor = $000008; // Цвет фона $000008 - не изменять! TfontColor = $ffffff; // Цвет тeкста #ifdef Video #include "XVID\xvid.iss" #endif #include "WizardFormResise.iss" Var Font1,Font2:hWnd; function InitializeSetup(): Boolean; begin ExtractTemporaryFile('IsPicture_for_all.dll'); ExtractTemporaryFile('fon.bmp'); SplashWnd(ExpandConstant('{tmp}\fon.bmp'),1500,ScaleX(600),ScaleY(420)); #ifdef Video XvidInstall; ExtractTemporaryFile('fon.avi'); #endif EndSplash(1500,1000); Result:=True; end; procedure InitializeWizard(); begin Font1:= NewFont(16,600,0,0,0,'Comic Sans MS'); Font2:= NewFont(24,900,0,0,0,'Tahoma'); #ifdef Video if CanUseXvid then begin WizardForm.AutoScroll := False; WizardForm.ClientWidth:= ScaleX(600); WizardForm.ClientHeight:=ScaleY(420); WizardForm.Center; end WizardFormResise; #endif WizardForm.WizardSmallBitmapImage.Hide; WizardForm.WizardBitmapImage2.Hide; WizardForm.DirEdit.AutoSelect:=False; //----------------------------------------- //----------------------------------------- //---------------// не изменять!\\---------------\\ // задаем цвет всем элементам,которые нам нужны. WizardForm.WelcomePage.Color:=TfonColor;// не изменять! WizardForm.FinishedPage.Color:=TfonColor; WizardForm.InnerPage.Color:=TfonColor; WizardForm.DirEdit.Color:=TfonColor; WizardForm.ReadyMemo.Color:=TfonColor; WizardForm.MainPanel.Color:=TfonColor; //---------------// не изменять!\\---------------\\ //----------------------------------------- //----------------------------------------- //---------------//Применяем шрифт\\---------------\\ WizardForm.Font.Handle:=Font1; WizardForm.WelcomeLabel1.Font.Handle := Font2; WizardForm.FinishedHeadingLabel.Font.Handle := Font2; WizardForm.PageNameLabel.Font.Handle := Font1; WizardForm.Font.Color:=TfontColor; //---------------//Применяем шрифт\\---------------\\ //----------------------------------------- //----------------------------------------- // Приделываем прозрачность к SelectDirBitmapImage // иначе, придется любоваться на красивый серый // квадратик вокруг изображения папки :) WizardForm.SelectDirBitmapImage.BackColor := clNone; WizardForm.SelectDirBitmapImage.ReplaceColor := clBtnFace; //----------------------------------------- // скрываем изображение с финишной страницы WizardForm.WizardBitmapImage.Parent := MainForm; WizardForm.WizardBitmapImage.SetBounds(0, 0, WizardForm.ClientWidth, WizardForm.ClientHeight); //----------------------------------------- //----------------------------------------- // Запускаем в работу все, что приготовили: // указываем формы, с которыми будет работать длл-ка, //----------------------------------------- Initialize(WizardForm.Handle,MainForm.Handle); //----------------------------------------- // мультимедийные возможности - Фоновое видео //----------------------------------------- #ifdef Video if CanUseXvid then XvidVideo(ExpandConstant('{tmp}\fon.avi'), '351 201 236 132'); #endif //----------------------------------------- end; procedure DeinitializeSetup(); begin //----------------------------------------- // Не забываем про Deinitialize // если не хотим разнообразных ошибок при выходе. //----------------------------------------- Deinitialize; //----------------------------------------- #ifdef Video XvidUnInstall; #endif end; Edited June 25, 2016 by ЛОМ Quote Share this post Link to post Short link Share on other sites
Nowik1971 2 #334472 Posted June 25, 2016 народ подскажите если не трудно как в данном скрипте увеличить окно установщика ? ту картинку что появляется до открытия установщика могу сделать и больше и меньше а вот сам установщик в размерах ну никак не могу. ;#define Video [Setup] AppName=My Program AppVersion=1.5 DefaultDirName={pf}\My Program WizardImageFile=Fon.bmp OutputBaseFilename=2 [Files] Source: compiler:Dll Pack\IsPicture_for_all.dll; Flags: dontcopy Source: Fon.bmp; Flags: dontcopy #ifdef Video Source: XVID\fon.avi; Flags: dontcopy #endif [Code] //----------------------------------------- procedure Initialize(AhWnd,BhWnd:hWnd);external 'Initialize@{tmp}\IsPicture_for_all.dll stdcall delayload'; // Здесь указываем хендлы окон, на данный момент, лучше пока указывать // WizardForm.Handle - первым и MainForm.Handle вторым. //----------------------------------------- procedure XvidVideo(fn:String;Seth:string);external 'XvidVideo@{tmp}\IsPicture_for_all.dll stdcall delayload'; // Эта процедура загружает фоновое avi-видео. // Seth - задаем координаты через пробел в одинарных кавычках // пример: XvidVideo(ExpandConstant('{tmp}\fon.avi'), '351 201 236 132'); //----------------------------------------- procedure Deinitialize;external 'Deinitialize@{tmp}\IsPicture_for_all.dll stdcall delayload'; // отменяет свзывание форм между собой, выгружает видео. //----------------------------------------- function NewFont(Height:Integer;thickness,italic,underline,strikeout:DWORD;name:String):hWnd;external 'NewFont@{tmp}\IsPicture_for_all.dll stdcall delayload'; // Создает шрифты для замены стандартных. Необходима для борьбя с артефактами сглаживания. // Height, // высота шрифта // thickness, // насыщенность шрифта // italic, // курсив // underline, // Подчеркнутый // strikeout, // Зачеркнутый // name // имя шрифта //----------------------------------------- procedure SplashWnd(FileName:PAnsiChar;Time,width,height:Integer);external 'SplashWnd@{tmp}\IsPicture_for_all.dll stdcall delayload'; // Создает Splash-заставку // Прозрачность, пока, не поддерживается // FileName, // имя файла // Time, // скорость появления в миллисекундах // width, // ширина // height, // высота procedure EndSplash(Time1,Time2:Integer);external 'EndSplash@{tmp}\IsPicture_for_all.dll stdcall delayload'; // Закрываем Splash-заставку // Time1, // выжидание до закрытия в миллисекундах // Time, // скорость закрытия в миллисекундах //----------------------------------------- //----------------------------------------- function GetSystemMetrics(nIndex:Integer):integer; external '[email protected] stdcall delayload'; const TfonColor = $000008; // Цвет фона $000008 - не изменять! TfontColor = $ffffff; // Цвет тeкста #ifdef Video #include "XVID\xvid.iss" #endif #include "WizardFormResise.iss" Var Font1,Font2:hWnd; function InitializeSetup(): Boolean; begin ExtractTemporaryFile('IsPicture_for_all.dll'); ExtractTemporaryFile('fon.bmp'); SplashWnd(ExpandConstant('{tmp}\fon.bmp'),1500,ScaleX(600),ScaleY(420)); #ifdef Video XvidInstall; ExtractTemporaryFile('fon.avi'); #endif EndSplash(1500,1000); Result:=True; end; procedure InitializeWizard(); begin Font1:= NewFont(16,600,0,0,0,'Comic Sans MS'); Font2:= NewFont(24,900,0,0,0,'Tahoma'); #ifdef Video if CanUseXvid then begin WizardForm.AutoScroll := False; WizardForm.ClientWidth:= ScaleX(600); WizardForm.ClientHeight:=ScaleY(420); WizardForm.Center; end WizardFormResise; #endif WizardForm.WizardSmallBitmapImage.Hide; WizardForm.WizardBitmapImage2.Hide; WizardForm.DirEdit.AutoSelect:=False; //----------------------------------------- //----------------------------------------- //---------------// не изменять!\\---------------\\ // задаем цвет всем элементам,которые нам нужны. WizardForm.WelcomePage.Color:=TfonColor;// не изменять! WizardForm.FinishedPage.Color:=TfonColor; WizardForm.InnerPage.Color:=TfonColor; WizardForm.DirEdit.Color:=TfonColor; WizardForm.ReadyMemo.Color:=TfonColor; WizardForm.MainPanel.Color:=TfonColor; //---------------// не изменять!\\---------------\\ //----------------------------------------- //----------------------------------------- //---------------//Применяем шрифт\\---------------\\ WizardForm.Font.Handle:=Font1; WizardForm.WelcomeLabel1.Font.Handle := Font2; WizardForm.FinishedHeadingLabel.Font.Handle := Font2; WizardForm.PageNameLabel.Font.Handle := Font1; WizardForm.Font.Color:=TfontColor; //---------------//Применяем шрифт\\---------------\\ //----------------------------------------- //----------------------------------------- // Приделываем прозрачность к SelectDirBitmapImage // иначе, придется любоваться на красивый серый // квадратик вокруг изображения папки :) WizardForm.SelectDirBitmapImage.BackColor := clNone; WizardForm.SelectDirBitmapImage.ReplaceColor := clBtnFace; //----------------------------------------- // скрываем изображение с финишной страницы WizardForm.WizardBitmapImage.Parent := MainForm; WizardForm.WizardBitmapImage.SetBounds(0, 0, WizardForm.ClientWidth, WizardForm.ClientHeight); //----------------------------------------- //----------------------------------------- // Запускаем в работу все, что приготовили: // указываем формы, с которыми будет работать длл-ка, //----------------------------------------- Initialize(WizardForm.Handle,MainForm.Handle); //----------------------------------------- // мультимедийные возможности - Фоновое видео //----------------------------------------- #ifdef Video if CanUseXvid then XvidVideo(ExpandConstant('{tmp}\fon.avi'), '351 201 236 132'); #endif //----------------------------------------- end; procedure DeinitializeSetup(); begin //----------------------------------------- // Не забываем про Deinitialize // если не хотим разнообразных ошибок при выходе. //----------------------------------------- Deinitialize; //----------------------------------------- #ifdef Video XvidUnInstall; #endif end; Через встроенный редактор формы в Инно все делается растягивается и сжимается вся форма и что в ней! 1 Quote Share this post Link to post Short link Share on other sites
Lom 48 #334703 Posted June 28, 2016 (edited) кто нибудь может объяснить про скины? в скачанном "Inno Setup 5" в папке " Dll Examples \ IsSkinEx [3.0.0.2] " есть скрипт " Example " ну это пример это понятно. после того как компильнешь его в папке "Output" появляется соответствующий инсталлятор. но почему когда заменяешь " Tiger.cjstyles " на любой другой ничего не работает? просто появляется стандартный инстал. я в этом скрипте везде и названия менял и местами все менял ничего не помогает. в чем проблема подскажите пожалуйста если не трудно) вот сам скрипт #ifdef UNICODE #define A "W" #define SKinDll "ISSkinExW.dll" #else #define A "A" #define SKinDll "ISSkinExA.dll" #endif #define SKin "Tiger.cjstyles" #define SKinIni "NormalBlack.ini" [Setup] AppName=My prog AppVerName=My prog DefaultDirName={pf}\My prog [Files] Source: compiler:Dll Pack\{#SKinDll}; DestDir: {app}; Flags: ignoreversion Source: {#SKin}; DestDir: {app}; Flags: ignoreversion [code] function ShowWindow(hWnd: Integer; uType: Integer): Integer; external '[email protected] stdcall'; procedure LoadSkin(lpszPath, lpszIniFileName: string); external 'LoadSkin@{tmp}\{#SKinDll} stdcall delayload setuponly'; procedure UnloadSkin(); external 'UnloadSkin@{tmp}\{#SKinDll} stdcall delayload setuponly'; procedure LoadSkinU(lpszPath, lpszIniFileName: string); external 'LoadSkin@{tmp}\{#SKinDll} stdcall delayload uninstallonly'; procedure UnloadSkinU(); external 'UnloadSkin@{tmp}\{#SKinDll} stdcall delayload uninstallonly'; function InitializeSetup(): Boolean; begin ExtractTemporaryFile('{#SKinDll}'); ExtractTemporaryFile('{#SKin}'); LoadSkin(ExpandConstant('{tmp}\{#SKin}'), '{#SKinIni}'); Result:=True; end; procedure DeinitializeSetup(); begin UnloadSkin; WizardForm.Free; end; function InitializeUninstall(): Boolean; begin FileCopy(ExpandConstant('{app}\{#SKinDll}'), ExpandConstant('{tmp}\{#SKinDll}'), False); FileCopy(ExpandConstant('{app}\{#SKin}'), ExpandConstant('{tmp}\{#SKin}'), False); LoadSkinU(ExpandConstant('{tmp}\{#SKin}'), '{#SKinIni}'); DeleteFile(ExpandConstant('{app}\{#SKinDll}')); DeleteFile(ExpandConstant('{app}\{#SKin}')); Result:=True; end; procedure DeinitializeUninstall(); begin UnloadSkinU; end; Edited June 28, 2016 by ЛОМ Quote Share this post Link to post Short link Share on other sites
AtotIK 580 #334711 Posted June 28, 2016 #define SKinIni "NormalBlack.ini" В каждом стиле внутри свой "конфиг". Quote Share this post Link to post Short link Share on other sites
Lom 48 #334779 Posted June 28, 2016 #define SKinIni "NormalBlack.ini" В каждом стиле внутри свой "конфиг". а где этот конфиг? даже в этом примере ( как видно по фотке что я выложил выше ) в этой папке нет файла с расширением .ini ? кроме того что он просто написан в конфиге. Quote Share this post Link to post Short link Share on other sites
akey 35 #334833 Posted June 29, 2016 а где этот конфиг? даже в этом примере ( как видно по фотке что я выложил выше ) в этой папке нет файла с расширением .ini ? кроме того что он просто написан в конфиге. Антивирь мог скушать. P.S. В ветке есть примеры использования других шаблонов с другой библиотекой под inno. И самое главное, как сказал Kotyarko_O, поставьте китайскую расширенную версию инно, иначе многие возможности многих скриптов у Вас по просту не будут работать. Quote Share this post Link to post Short link Share on other sites
Lom 48 #334835 Posted June 29, 2016 (edited) Антивирь мог скушать. P.S. В ветке есть примеры использования других шаблонов с другой библиотекой под inno. И самое главное, как сказал Kotyarko_O, поставьте китайскую расширенную версию инно, иначе многие возможности многих скриптов у Вас по просту не будут работать. китайская расширенная эта та что тут в начале форума выложена да? она то у меня и стоит))) а антивиря у меня давно нет))) просто как я понял сами скины в нём и не работают)) Edited February 2, 2017 by ЛОМ Quote Share this post Link to post Short link Share on other sites
AtotIK 580 #334851 Posted June 29, 2016 Внутри стиля лежат. Quote Share this post Link to post Short link Share on other sites
Lom 48 #334864 Posted June 29, 2016 (edited) Внутри стиля лежат. я что то не вижу их)) или я не там смотрю)) но ни одного файла с расширением ini. ни в той что на фотке ни в других папках что на фотке нет))) Edited June 29, 2016 by ЛОМ Quote Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #334868 Posted June 29, 2016 (edited) @ЛОМ, можно использовать скины и без ини-конфига. 'Код:' #define SKinDll "ISSkinExW.dll" #define SKin "Tiger.cjstyles" [Setup] AppName=My prog AppVerName=My prog DefaultDirName={pf}\My prog [Files] Source: {#SKinDll}; DestDir: {app}; Flags: ignoreversion Source: {#SKin}; DestDir: {app}; Flags: ignoreversion [Code] Procedure LoadSkin(lpszPath, lpszIniFileName: string); external 'LoadSkin@files:{#SKinDll} stdcall delayload setuponly'; Procedure UnloadSkin(); external 'UnloadSkin@files:{#SKinDll} stdcall delayload setuponly'; Procedure LoadSkinU(lpszPath, lpszIniFileName: string); external 'LoadSkin@{tmp}\{#SKinDll} stdcall delayload uninstallonly'; Procedure UnloadSkinU(); external 'UnloadSkin@{tmp}\{#SKinDll} stdcall delayload uninstallonly'; Function InitializeSetup(): Boolean; begin ExtractTemporaryFile('{#SKin}'); LoadSkin(ExpandConstant('{tmp}\{#SKin}'), ''); Result := True; end; Procedure DeinitializeSetup(); begin UnloadSkin(); WizardForm.Free; end; Function InitializeUninstall(): Boolean; begin FileCopy(ExpandConstant('{app}\{#SKinDll}'), ExpandConstant('{tmp}\{#SKinDll}'), False); FileCopy(ExpandConstant('{app}\{#SKin}'), ExpandConstant('{tmp}\{#SKin}'), False); LoadSkinU(ExpandConstant('{tmp}\{#SKin}'), ''); DeleteFile(ExpandConstant('{app}\{#SKinDll}')); DeleteFile(ExpandConstant('{app}\{#SKin}')); Result:=True; end; Procedure DeinitializeUninstall(); begin UnloadSkinU(); end; При этом используйте IsSkinEx, а не IsSkin.И не стоит использовать скин в деинсталляторе - он там нафиг не нужен. Edited June 29, 2016 by Kotyarko_O 1 Quote Share this post Link to post Short link Share on other sites
Lom 48 #334879 Posted June 29, 2016 (edited) @ЛОМ, можно использовать скины и без ини-конфига. 'Код:' #define SKinDll "ISSkinExW.dll" #define SKin "Tiger.cjstyles" [Setup] AppName=My prog AppVerName=My prog DefaultDirName={pf}\My prog [Files] Source: {#SKinDll}; DestDir: {app}; Flags: ignoreversion Source: {#SKin}; DestDir: {app}; Flags: ignoreversion [Code] Procedure LoadSkin(lpszPath, lpszIniFileName: string); external 'LoadSkin@files:{#SKinDll} stdcall delayload setuponly'; Procedure UnloadSkin(); external 'UnloadSkin@files:{#SKinDll} stdcall delayload setuponly'; Procedure LoadSkinU(lpszPath, lpszIniFileName: string); external 'LoadSkin@{tmp}\{#SKinDll} stdcall delayload uninstallonly'; Procedure UnloadSkinU(); external 'UnloadSkin@{tmp}\{#SKinDll} stdcall delayload uninstallonly'; Function InitializeSetup(): Boolean; begin ExtractTemporaryFile('{#SKin}'); LoadSkin(ExpandConstant('{tmp}\{#SKin}'), ''); Result := True; end; Procedure DeinitializeSetup(); begin UnloadSkin(); WizardForm.Free; end; Function InitializeUninstall(): Boolean; begin FileCopy(ExpandConstant('{app}\{#SKinDll}'), ExpandConstant('{tmp}\{#SKinDll}'), False); FileCopy(ExpandConstant('{app}\{#SKin}'), ExpandConstant('{tmp}\{#SKin}'), False); LoadSkinU(ExpandConstant('{tmp}\{#SKin}'), ''); DeleteFile(ExpandConstant('{app}\{#SKinDll}')); DeleteFile(ExpandConstant('{app}\{#SKin}')); Result:=True; end; Procedure DeinitializeUninstall(); begin UnloadSkinU(); end; При этом используйте IsSkinEx, а не IsSkin.И не стоит использовать скин в деинсталляторе - он там нафиг не нужен. СПАСИБО!!! да просто интересно было почему не работает ( хотя для начинающих вроде меня для инсталлятора можно ведь пользовать?! )))) КАК только попробовал твой скрипт всё заработало!!! там который пример скрипта ваще не пашет! а с твоим только так!!! еще раз СПАСИБО!!! ))) Edited June 29, 2016 by ЛОМ Quote Share this post Link to post Short link Share on other sites
AtotIK 580 #334911 Posted June 29, 2016 я не там смотрю Внутри файла. Хотя уже всё равно. 1 Quote Share this post Link to post Short link Share on other sites
Lom 48 #335028 Posted June 29, 2016 елки палки!! никак не могу найти. ведь было же где то. подскажите как сделать в установщике две страницы с выбором [Components]. слишком много на одну страницу. Quote Share this post Link to post Short link Share on other sites
Nowik1971 2 #335037 Posted June 30, 2016 (edited) ЛОМ, on 30 Jun 2016 - 02:27, said:елки палки!! никак не могу найти. ведь было же где то. подскажите как сделать в установщике две страницы с выбором [Components]. слишком много на одну страницу. В теме есть это и обсуждалось.... Edited June 30, 2016 by Nowik1971 Quote Share this post Link to post Short link Share on other sites
Lom 48 #335055 Posted June 30, 2016 В теме есть это и обсуждалось.... знаю! просто не помню где же это точно было)) вот терь с начала читаю всё))) Quote Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #335056 Posted June 30, 2016 вот терь с начала читаю всё) Учитесь пользоваться поиском.Всего-то нужно подумать над ключом поиска. Например, могут подойти: TNewCheckListBox, AddCheckBox \ AddRadionButton. Quote Share this post Link to post Short link Share on other sites