Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 6]
Nightwishh
03-08-2013, 19:50
:yahoo: А можно ли вызвать страницу WizardForm.SelectTasksPage, когда в секции [Tasks] пусто?
sergey3695
03-08-2013, 22:02
Nightwishh,
var
CompPage: TWizardPage;
procedure InitializeWizard; -> CompPage := CreateCustomPage(wpSelectDir,'','');
procedure CurPageChanged(CurPageID: Integer); -> if CurPageID = CompPage.Id then
Если страниц нехватает.
Или оставить какую-то фигню в [Tasks] и скрыть TasksList. (то что выше правильнее и лучше)
AlexM22204
05-08-2013, 19:09
Здравствуйте!
Возникла необходимость перепаковать один Inno Setup инсталлятор под себя, вроде всё получилось кроме не знаю как организовать(прописать в скрипте) подхват своих настроек из settings.reg, если таковой имеется в папке с инсталлятором. Если такое где-то было, просьба не ругать а ткнуть носом :cool: Заранее спасибо!!!
делаю так не подхватывается :(
[Run]
Filename: "{win}\regedit.exe"; Parameters: "-s {src}\Settings.reg"; WorkingDir: "{src}"; StatusMsg: "Внесение настроек в реестр...";
Johny777
05-08-2013, 23:59
AlexM22204, Да было уже. Давно. Тут пример через код а не как у тебя через секцию [Run], но разберёшься! :)
http://forum.oszone.net/post-2010676-1173.html
R.i.m.s.k.y.
06-08-2013, 12:20
AlexM22204, WorkingDir: "{win}"
Dark_Delphin
06-08-2013, 16:15
Подскажите как сделать страницу параметры, при нажатии на кнопку, что-бы она открывалась?
Gnom_aka_Lexander
06-08-2013, 17:17
Dark_Delphin, вот так:
var
BtnSet: TNewButton;
ParametresPage: TWizardPage;
SetFlag : Boolean; // опорный флаг скрытия ParametresPage
function ShouldSkipPage(PageID: Integer): Boolean;
begin
if PageID = ParametresPage.ID then Result := SetFlag; // встроенная функция сокрытия страниц, открытие ParametresPage привязываем тут к SetFlag
end;
procedure BtnSetClick(Sender: TObject);
begin
SetFlag := False; // при нажатии на кнопку меняем значение на обратное, чтоб страница ParametresPage была показана
WizardForm.NextButton.OnClick(WizardForm.NextButton);
end;
procedure InitializeWizard();
begin
ParametresPage := CreateCustomPage(wpWelcome, 'Параметры', 'Выберите дополнительные параметры установки'); //страница параметров
BtnSet := TNewButton.Create(WizardForm);
with BtnSet do
begin
Parent := WizardForm.WelcomePage;
SetBounds(ScaleX(40), ScaleY(264), ScaleX(75), ScaleY(25));
Caption := 'Параметры';
OnClick := @BtnSetClick;
end;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
SetFlag := True; // ParametresPage всегда скрыта
end;
Dark_Delphin
06-08-2013, 17:27
Gnom_aka_Lexander, использую вот скрипт из паблика, сделал вроде всё правильно, но кнопки не вижу.
http://rghost.ru/47933115
Gnom_aka_Lexander
06-08-2013, 17:37
Dark_Delphin, дык. во первых смотрим:
BtnSet := TNewButton.Create(WizardForm);
with BtnSet do
begin
Parent := WizardForm.WelcomePage;// у нас OuterNotebook.Hide;, значит кнопки мы не увидим, поэтому начнем с этого: Parent := WizardForm;
SetBounds(ScaleX(460), ScaleY(200), ScaleX(175), ScaleY(25));// тут я думаю все понятно?
Caption := 'Параметры';
OnClick := @BtnSetClick;
end;
далее.
поскольку делаем Parent := WizardForm;, то кнопка нужна нам на определенной странице. это значит, в CurPageChanged в самом начале добавляем BtnSet.Hide;
SetFlag := True; // ParametresPage всегда скрыта - тоже лучше в начало вынести.
на нужной странице скорей всего wpWelcome, добавляем BtnSet.Show;
???????
PROFIT!!!
El Sanchez
06-08-2013, 17:43
делаю так не подхватывается
[Run]
Filename: "{win}\regedit.exe"; Parameters: "-s {src}\Settings.reg"; WorkingDir: "{src}"; StatusMsg: "Внесение настроек в реестр..."; »
AlexM22204, вероятно {src} раскрывается в путь с пробелами, получается неправильная комстрока для regedit. Нужно так:
[Run]
Filename: {win}\regedit.exe; Parameters: "-s ""{src}\Settings.reg"""; StatusMsg: "Внесение настроек в реестр..."
WorkingDir: "{win}" »
R.i.m.s.k.y., это из другой оперы. Эта директива отвечает за задание процессу текущей директории, т.е. комстроку можно формировать относительно этой директории:
[Run]
Filename: {win}\regedit.exe; Parameters: -s Settings.reg; WorkingDir: {src}; StatusMsg: "Внесение настроек в реестр..."
insombia
06-08-2013, 18:00
как текстурировать кнопку обзор через ботву? я пробовал но она пропадает
http://rghost.ru/47933940
Gnom_aka_Lexander
06-08-2013, 18:08
insombia, через ботву кнопки не текстурируются. Совсем. обрати внимание на примеры. там везде при создании замены для кнопки, той кнопке, которую нужно "сделать красиво" просто задаются нулевые ширина и высота. А спомощью функции btmSetEven задается действие, которое выполняла та кнопка, которая была заменена на "обрюшеную"я пробовал но она пропадает »
Изучай модуль botva2.iss там описано все полностью. Причем по русски - что вообще здорово.
в твоем случае изучать нужно функцию BtnCreate, самый первый ее параметр.
insombia твой пример был сделан когда все было скрыто а сейчас надо указать где кнопка будет
with WizardForm.DirBrowseButton do begin
hDirBrowseBtn:=BtnCreate(WizardForm.SelectDirPage.Handle,340,72,80,40,ExpandConstant('{tmp}\button.p ng'),18,False);
BtnSetEvent(hDirBrowseBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetText(hDirBrowseBtn,'>');
BtnSetFont(hDirBrowseBtn,Font.Handle);
BtnSetFontColor(hDirBrowseBtn,$DAE369,$DAE369,$DAE369,$B6B6B6);
Width:=0;
Height:=0;
end;
Dark_Delphin
06-08-2013, 18:43
Gnom_aka_Lexander, к сожелению всеравно не появилась кнопка.
Gnom_aka_Lexander
06-08-2013, 18:45
Dark_Delphin, обрати внимание на строчку SetBounds - первые 2 параметра - расположение - первая координата - расстояние от края слева, вторая - от верха. если сделал все, как я описал, то просто выставив там по 0, должен увидеть кнопку в левом верхнем углу инсталла.
Dark_Delphin
06-08-2013, 18:53
Gnom_aka_Lexander, я не правильно написал, кнопка сама есть, но на странице нету - выбора компонентов...
Вот http://rghost.ru/47935040
Gnom_aka_Lexander
06-08-2013, 19:05
но на странице компонентов нету... »
дык. ты-ж там ничего не создал, потому и нету ничего. все, что там создаш, нужно аналогично кнопке скрыть в начале CurPageChanged и показать на ParametresPage.ID в той-же CurPageChanged
Dark_Delphin
06-08-2013, 19:08
Gnom_aka_Lexander, а есть пример кода как это сделать?
И еще, только что заметил, что при нажатии также на кнопку Установка - происходит переход на следующую страницу, хотя должна сразу происходить установка...
Gnom_aka_Lexander
06-08-2013, 19:21
а есть пример кода как это сделать? »
прямо в этом-же скрипте пример и есть
CrackedLabel:=TLabel.Create(WizardForm); // создается лейбел в InitializeWizard
CrackedLabel.Hide; // в CurPageChanged он скрывается
CrackedLabel.Show; // на wpWelcome он показывается
там все элементы созданные, ничего сверхъестественного абсолютно нету.
Dark_Delphin вот пример
http://rghost.ru/47935847
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC