Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 7]
как добавить chekbox на страничку SelectProgramGroupPage c функцией не создать папку »
[Setup]
AllowNoIcons=yes
Dodakaedr
19-03-2014, 14:03
Shkutu, как его переместить вверх?
Dodakaedr
19-03-2014, 15:19
Как сделать чтобы на страничке FinishedPage невозможно было снимать галочку?
как его переместить вверх »
Честно говоря, не очень поняла, куда вверх :) Ну например так
procedure InitializeWizard();
begin
WizardForm.NoIconsCheck.top:=WizardForm.GroupEdit.top + WizardForm.GroupEdit.height + ScaleY(15);
end;
на страничке FinishedPage невозможно было снимать галочку »
Это которая про запуск приложений? Можно так
procedure CurPageChanged(CurPageID: Integer);
begin
case CurPageID of
wpFinished:
begin
if (WizardForm.RunList.Items.count<>0) then
WizardForm.RunList.ItemEnabled[0]:=false;
end;
end;
Ivan_009
19-03-2014, 18:16
У кого имеется PSD исходник этих кнопок инсталлятора поделитесь пожалуйста...
http://rghost.ru/53181955
Dodakaedr
19-03-2014, 23:55
Как использовать скины? Никак не могу понять.
Ivan_009
20-03-2014, 00:05
Как использовать скины »
Dodakaedr, Вот: http://forum.ru-board.com/topic.cgi?forum=5&topic=35146&start=1299&limit=1&m=8#1
Dodakaedr
20-03-2014, 09:27
Поделитесь у кого есть программой Inno Setup Form Designer
Dodakaedr установи InnoUltra там есть Расширенная версия от китайских собратьев ResTools либо Form Designer (http://rghost.ru/53197326)
Dodakaedr
20-03-2014, 11:45
Нужна помощь: код для скина
[Setup]
AppName=MyApp
AppVerName=MyApp
DefaultDirName={pf}\MyApp
[Files]
Source: "ISSkinEx.cjstyles"; DestDir: {tmp}; Flags: dontcopy
Source: "ISSkin.dll"; DestDir: {tmp}; Flags: dontcopy
[Code]
procedure LoadSkin(lpszPath: String; lpszIniFileName: String);
external 'LoadSkin@files:ISSkin.dll stdcall';
procedure UnloadSkin();
external 'UnloadSkin@files:ISSkin.dll stdcall';
function InitializeSetup(): Boolean;
begin
ExtractTemporaryFile('ISSkinEx.cjstyles');
LoadSkin(ExpandConstant('{tmp}\ISSkinEx.cjstyles'), '');
Result := True;
end;
procedure DeinitializeSetup();
begin
UnloadSkin();
end;
Вроде все верно, но почему-то выскакивает ошибка
http://savepic.org/5160450.jpg
Файл ISSkin.dll находится в корне программы.
Dodakaedr пример
http://rghost.ru/53198788
Dinvin4ester
20-03-2014, 19:24
Ребята ,а мне не поможете ?
Stealthmax
20-03-2014, 20:39
Люди добрые, подскажите, почему не обрабатывается код, в частности не происходит переименование заголовка формы, а кнопка в том же куске кода переименовывается.
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = TypeInstall.ID then
begin
WizardForm.Caption:=ExpandConstant('{cm:TypeInstall}');
//Изменить описание кнопки Далее для конкретной страницы
WizardForm.NextButton.Caption := ExpandConstant('{cm:Install}');
end;
if CurPageID = AdditionallyPage.ID then
begin
WizardForm.Caption:=ExpandConstant('{cm:Labels}');
end;
end;
И ещё такой вопрос: как запустить установку после выбора CheckBox и RadioButton в списке, если стандартные диалоговые окна отключены, т.е. полностью все окна кастомные, часть компонентов из них перенесены на новые окна. Хотя бы пример какой-то дайте, если не затруднит. Не могу понять как "прикрутить" запуск установки исходя из вышеизложенного.
почему не обрабатывается код, в частности не происходит переименование заголовка формы »
Работает.
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DisableWelcomePage=yes
OutputDir={#SourcePath}
[Code]
const
PAGES_COUNT = 3;
var
pageArray: array of TWizardPage;
procedure CreateCustomPages(const AfterID, Count: Integer; out ResultArray: array of TWizardPage);
var
i, Len: Integer;
begin
Len := GetArrayLength(ResultArray);
SetArrayLength(ResultArray, Len + Count);
for i := Len + Count - 1 downto Len do
ResultArray[i] := CreateCustomPage(AfterID, #0, #0);
end;
procedure ModifyCustomPages();
var
Len: Integer;
begin
Len := GetArrayLength(pageArray);
with pageArray[0] do
begin
Caption := 'Первая страница';
Description := 'Description';
end;
with pageArray[1] do
begin
Caption := 'Вторая страница';
Description := 'Description';
end;
with pageArray[Len - 1] do
begin
Caption := 'Третья страница';
Description := 'Description';
end;
end;
procedure CurPageChanged(CurPageID: Integer);
var
Len: Integer;
begin
Len := GetArrayLength(pageArray);
WizardForm.Caption := SetupMessage(msgSetupWindowTitle);
case PageFromID(CurPageID) of
pageArray[0]: WizardForm.Caption := 'Первая страница';
pageArray[1]: WizardForm.Caption := 'Вторая страница';
pageArray[Len - 1]: WizardForm.Caption := 'Третья страница';
end;
end;
procedure InitializeWizard();
begin
CreateCustomPages(wpWelcome, PAGES_COUNT, pageArray);
ModifyCustomPages();
end;
как запустить установку после выбора CheckBox »
Например:
if CheckBox.Checked then нужное действие
Dodakaedr
20-03-2014, 21:52
vint56, что не так? Таже ошибка выскакивает... Чисто твой скрипт работает.
#define IncludeFiles "InstallFiles"
#define Skin
#ifdef Skin
#define Styles "ISSkinEx.cjstyles"
#endif
[Setup]
AppName=MyApp
AppVerName=MyApp
DefaultDirName={pf}\MyApp
[Files]
#ifdef Skin
#ifdef UNICODE
Source: {#IncludeFiles}\U\ISSkin.dll; Flags: dontcopy
#else
Source: {#IncludeFiles}\ISSkin.dll; Flags: dontcopy
#endif
Source: {#IncludeFiles}\{#Styles}; Flags: dontcopy
#endif
[Code]
procedure LoadSkin(lpszPath: String; lpszIniFileName: String);
external 'LoadSkin@files:ISSkin.dll stdcall';
procedure UnloadSkin();
external 'UnloadSkin@files:ISSkin.dll stdcall';
function InitializeSetup(): Boolean;
begin
ExtractTemporaryFile('ISSkinEx.cjstyles');
LoadSkin(ExpandConstant('{tmp}\ISSkinEx.cjstyles'), '');
Result := True;
end;
procedure DeinitializeSetup();
begin
UnloadSkin();
end;
Dodakaedr ISSkin.dll нету во временном каталоге
[Setup]
AppName=MyApp
AppVerName=MyApp
DefaultDirName={pf}\MyApp
[Files]
Source: "Tiger.cjstyles"; Flags: dontcopy
Source: "ISSkin.dll";Flags: dontcopy
[code]
procedure LoadSkin(lpszPath: String; lpszIniFileName: String);
external 'LoadSkin@files:ISSkin.dll stdcall';
procedure UnloadSkin();
external 'UnloadSkin@files:ISSkin.dll stdcall';
function InitializeSetup(): Boolean;
begin
if not FileExists(ExpandConstant('{tmp}\Tiger.cjstyles')) then ExtractTemporaryFile('Tiger.cjstyles');
if not FileExists(ExpandConstant('{tmp}\ISSkin.dll')) then ExtractTemporaryFile('ISSkin.dll');
LoadSkin(ExpandConstant('{tmp}\Tiger.cjstyles'), '');
Result := True;
end;
procedure DeinitializeSetup();
begin
UnloadSkin();
end;
Dodakaedr
20-03-2014, 22:46
vint56, не помогает.
Приветствую!
Подскажите плиз, есть ли в инно функция, с помощью которой можно узнать, почему не отработала предыдущая функция типа FileCopy? Ну т е что-то, аналогичное SysErrorMessage(ResultCode), но для функций, которые просто возвращают true/false без всякого ResultCode
Ivan_009
21-03-2014, 14:35
Как на отдельный чекбокс наложить картинку bmp или только на компонент лист можно...
Заранее спасибо...
Gnom_aka_Lexander
21-03-2014, 20:06
Ivan_009, шапку лень почитать?
Создание кастомного чекбокса (http://forum.oszone.net/post-1798150-166.html) - пример скрипта для создания своего чекбокса, всего 12 состояний, (ссылка на сообщение);
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC