Обалдеть, какой глюк нашел. Если установить Office 2013 и созданный им rtf скормить инсталлятору, то он будет показывать нам вместо шрифта Cambria/Calibri шрифт Times New Roman.
» Inno Setup (создание инсталяционных пакетов)
Ссылка на "Inno Setup Scripting 5.1 - Руководство по расширенным возможностям Inno Setup от Kindly" "умерла"
Извините, хотел сюда написать: http://forum.ru-board.com/topic.cgi?forum=5&topic=36421&start=0&limit=1&m=3#1
Извините, хотел сюда написать: http://forum.ru-board.com/topic.cgi?forum=5&topic=36421&start=0&limit=1&m=3#1
Genri
Цитата:
Спасибо на наводку!
Вот только руки дошли до обрезания.
Решил, что конечных нулей может быть не более 3 (1.0.0.0), ну и тупо сделал так:
Код: #define TrimVersion(str Text) \
(Copy(Text, RPos('.', Text), 2) == '.0') ? Text = Copy(Text, 1, RPos('.', Text)-1) : Text, \
(Copy(Text, RPos('.', Text), 2) == '.0') ? Text = Copy(Text, 1, RPos('.', Text)-1) : Text, \
(Copy(Text, RPos('.', Text), 2) == '.0') ? Text = Copy(Text, 1, RPos('.', Text)-1) : Text
#define AppVersion TrimVersion(GetFileVersion("MyApp.exe"))
Цитата:
Цитата:Как сделать, чтобы имя выходного файла содержало версию без конечных нулей.
-- например так:
Спасибо на наводку!
Вот только руки дошли до обрезания.
Решил, что конечных нулей может быть не более 3 (1.0.0.0), ну и тупо сделал так:
Код: #define TrimVersion(str Text) \
(Copy(Text, RPos('.', Text), 2) == '.0') ? Text = Copy(Text, 1, RPos('.', Text)-1) : Text, \
(Copy(Text, RPos('.', Text), 2) == '.0') ? Text = Copy(Text, 1, RPos('.', Text)-1) : Text, \
(Copy(Text, RPos('.', Text), 2) == '.0') ? Text = Copy(Text, 1, RPos('.', Text)-1) : Text
#define AppVersion TrimVersion(GetFileVersion("MyApp.exe"))
Andrey128 -- а если потребуется задать версию: 3.01.40.0 ?
И не совсем понял, что здесь делает GetFileVersion("MyApp.exe")? Чтобы использовать GetFileVersion, нужно знать имя файла. Но именно имя мы и пытаемся получить. Оно явно будет не MyApp.exe, а с версией в имени. Клинч. Или это совершенно сторонний файл, из которого ты получаешь версию?
И не совсем понял, что здесь делает GetFileVersion("MyApp.exe")? Чтобы использовать GetFileVersion, нужно знать имя файла. Но именно имя мы и пытаемся получить. Оно явно будет не MyApp.exe, а с версией в имени. Клинч. Или это совершенно сторонний файл, из которого ты получаешь версию?
как сделать так чтобы создавался ярлык в панели управления windows 7?
Habib2302
ты бы с правилами написания сообщений ознакомился для начала...
Добавлено:
Апплеты в панели управления, это обычные DLL, имеющие расширение .cpl (Control Panel Library) и располагающиеся в системной директории Windows. В свою очередь, в каждом файле cpl может храниться несколько апплетов. Cpl имеет единственную функцию точки входа CPlApplet(), через которую поступают все сообщения от панели управления.
Файлы .cpl из системной папки, автоматически загружаются при запуске панели управления. Обратите внимание, что файлы панели управления иногда загружаются с помощью записей в разделе [раздела MMCPL] файла Control.ini.
Далее...
ты бы с правилами написания сообщений ознакомился для начала...
Добавлено:
Апплеты в панели управления, это обычные DLL, имеющие расширение .cpl (Control Panel Library) и располагающиеся в системной директории Windows. В свою очередь, в каждом файле cpl может храниться несколько апплетов. Cpl имеет единственную функцию точки входа CPlApplet(), через которую поступают все сообщения от панели управления.
Файлы .cpl из системной папки, автоматически загружаются при запуске панели управления. Обратите внимание, что файлы панели управления иногда загружаются с помощью записей в разделе [раздела MMCPL] файла Control.ini.
Далее...
Помогите написать скрипт, пожалуйста.
Есть такая задача:Имеем папку с системными шрифтами Arial, Calibri, Cambria, Consolas, Courier, Meiryo, Segoe UI, Tahoma, Times New Roman
Необходимо обновить их в системе.
Если в системе присутствует более свежая версия шрифта, то не заменять.
Почти все они заблокированы системой, поэтому замена должна быть с перезагрузкой компа
Если шрифта не было в системе, то корректно зарегистрировать его в реестре.
Есть такая задача:Имеем папку с системными шрифтами Arial, Calibri, Cambria, Consolas, Courier, Meiryo, Segoe UI, Tahoma, Times New Roman
Необходимо обновить их в системе.
Если в системе присутствует более свежая версия шрифта, то не заменять.
Почти все они заблокированы системой, поэтому замена должна быть с перезагрузкой компа
Если шрифта не было в системе, то корректно зарегистрировать его в реестре.
Alexerm
Цитата:
если очень нужно, можно скачать у нас на сайте. Линк
Цитата:
Ссылка на "Inno Setup Scripting 5.1
если очень нужно, можно скачать у нас на сайте. Линк
Нет ли у кого примерчика как сделать кастомную страницу такого вида:
Интересуют только жирные пункты выбора и комментарии к ним.
Обычный код не работает:
Код:
procedure InitializeWizard;
begin
UsagePage := CreateInputOptionPage(wpLicense,
'Select installation option', 'How should My Program be installed?',
'Select the desired installation option, then click Next.',
True, False);
UsagePage.Add('Install as a Windows Application' + #13 + 'Много текста');
UsagePage.Add('Install as a Windows Service' + #13 + 'Много текста');
UsagePage.SelectedValueIndex := 2;
end;
Интересуют только жирные пункты выбора и комментарии к ним.
Обычный код не работает:
Код:
procedure InitializeWizard;
begin
UsagePage := CreateInputOptionPage(wpLicense,
'Select installation option', 'How should My Program be installed?',
'Select the desired installation option, then click Next.',
True, False);
UsagePage.Add('Install as a Windows Application' + #13 + 'Много текста');
UsagePage.Add('Install as a Windows Service' + #13 + 'Много текста');
UsagePage.SelectedValueIndex := 2;
end;
Pantalone, по-видимому там не просто caption для радиокнопки, а несколько лэйбелов. По-второму, надо or вместо and.
Уважаемые, помогите пожалуйста осилить задачу.
При выборе определённого компонента:
1. запустить (до копирования файлов) сторонний (дополнительный) инсталлятор из {tmp} с заданными ключами установки.
2. удалить в {app} определённые папки ("мусорные", которые установит инсталлятор из пункта 1).
3. выполнить копирование (установку) файлов уже посредством основного inno-инсталлятора.
Заранее спасибо.
При выборе определённого компонента:
1. запустить (до копирования файлов) сторонний (дополнительный) инсталлятор из {tmp} с заданными ключами установки.
2. удалить в {app} определённые папки ("мусорные", которые установит инсталлятор из пункта 1).
3. выполнить копирование (установку) файлов уже посредством основного inno-инсталлятора.
Заранее спасибо.
CTpaHNICK
Эм... так она и так прозрачная О_о
Эм... так она и так прозрачная О_о
Здравствуйте, один маленький вопрос: при установке через ISDone (когда начинается работа с распаковкой архивов) если отменить установку (т.е. нажать отмена), то распаковка архивов заканчивается, и начинается распаковка архивов, запакованных самим компиллятором Inno, и только после этого запускается деинсталляция. Как сделать так, чтобы распаковка архивов Inno не начиналась, а сразу запускался деинсталлятор? Понятно дело, чтобы запустился обычный деинсталлятор, то нужно чтобы он сперва был создан, а создается он на финальном этапе установке. Как удалить в таком случае папку {app} без использования деинсталлятора? Отрывок из скрипта (чтобы вы лучше меня поняли)
Код:
...
if (CurStep = ssInstall) then begin
WizardForm.CancelButton.OnClick := @CancelButtonOnClick;
...
if (CurStep=ssPostInstall) and ISDoneError then begin
Exec2(ExpandConstant('{uninstallexe}'), '/VERYSILENT', false);
...
Код:
...
if (CurStep = ssInstall) then begin
WizardForm.CancelButton.OnClick := @CancelButtonOnClick;
...
if (CurStep=ssPostInstall) and ISDoneError then begin
Exec2(ExpandConstant('{uninstallexe}'), '/VERYSILENT', false);
...
ultimo, в скрипте ISDone есть такая функция
Код: function CheckError:boolean;
begin
result:= not ISDoneError;
end;
Код: function CheckError:boolean;
begin
result:= not ISDoneError;
end;
ultimo
на файлах, которые пакуются в сам инсталл, ставь проверку - Check :CheckError; (может называться по другому, название взял из оригинала примера, который идет с библиотекой. При такой проверке, файлы не будут распакованы из инсталлятора, если распаковка была прервана по любой причине.
на файлах, которые пакуются в сам инсталл, ставь проверку - Check :CheckError; (может называться по другому, название взял из оригинала примера, который идет с библиотекой. При такой проверке, файлы не будут распакованы из инсталлятора, если распаковка была прервана по любой причине.
Genri
Цитата:
Будет 3.1.40
Цитата:
Да, версия берется из внешнего файла, т.е. из экзешника приложения.
Цитата:
Andrey128 -- а если потребуется задать версию: 3.01.40.0 ?
Будет 3.1.40
Цитата:
И не совсем понял, что здесь делает GetFileVersion("MyApp.exe")? Чтобы использовать GetFileVersion, нужно знать имя файла. Но именно имя мы и пытаемся получить. Оно явно будет не MyApp.exe, а с версией в имени. Клинч. Или это совершенно сторонний файл, из которого ты получаешь версию?
Да, версия берется из внешнего файла, т.е. из экзешника приложения.
Как прописать путь к папке System32 в Win 7 х64?
Любой способ записи через секцию [Files] приводит к тому, что файлы попадают в папку SysWOW64, а надо именно System32.
Любой способ записи через секцию [Files] приводит к тому, что файлы попадают в папку SysWOW64, а надо именно System32.
Спасибо за подсказку с CheckError. Теперь надо сделать так, чтобы заместо одного прогресс бара было два - один показывающий распаковку файлов посредством ISDone а другой - распаковку файлов, запакованных самим инсталлятором Inno (фактически я не пакую файлы, использую флаг external, но это не меняет суть вопроса). Встречал похожую операцию с рисованным прогресс баром, но мне нужно сделать обычные бары. Ну или хотя бы ссылку на материал, ибо сам найти ниче толкового не смог
У меня отключены все страницы, нужен только прогресс бар.
[more=Code]
Код: procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpInstalling then
begin
with WizardForm do
begin
OuterNotebook.Hide;
MainPanel.Hide;
FilenameLabel.Hide;
ClientHeight:= WizardForm.ClientHeight - ScaleY(230); // высота (с верху)
ClientWidth:= WizardForm.ClientWidth - ScaleX(100); // ширина (с низу)
CancelButton.Left:= WizardForm.CancelButton.Left - ScaleX(100); // отмена (вверх)
CancelButton.Top:= WizardForm.CancelButton.Top - ScaleY(230);
Bevel.Top:= WizardForm.Bevel.Top - ScaleY(230); // линия (вверх)
ProgressGauge.Top:= ScaleY(45);
ProgressGauge.Width:= ProgressGauge.Width - ScaleX(80);
ProgressGauge.Left:= (WizardForm.Width/2) - (ProgressGauge.Width/2); // прогрессбар (центрируем)
ProgressGauge.Parent:= WizardForm;
StatusLabel.Top:= ScaleY(10);
StatusLabel.Left:= (WizardForm.Width/2) - (ProgressGauge.Width/2); // текст (центрируем)
StatusLabel.Parent:= WizardForm;
end;
FilenameLabel.Top:= ScaleY(25);
FilenameLabel.Left:= (WizardForm.Width/2) - (WizardForm.ProgressGauge.Width/2); // текст (центрируем)
FilenameLabel.Parent:= WizardForm;
// новый StaticText...
with TNewStaticText.Create(WizardForm) do
begin
Left:= ScaleX(30); // отступ с левой стороны
Top:= WizardForm.Bevel.Top - ScaleY(6);
Enabled:= False;
Caption:= ' Copyright 2012 © Boss911 ';
Parent:= WizardForm;
end;
// окно по центру экрана
WizardForm.Position:= poScreenCenter;
// if not WizardSilent then WizardForm.Show;
if Pos('/verysilent', Lowercase(GetCmdTail)) = 0 then WizardForm.Show;
end
else WizardForm.NextButton.OnClick(WizardForm.NextButton);
end;
[more=Code]
Код: procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpInstalling then
begin
with WizardForm do
begin
OuterNotebook.Hide;
MainPanel.Hide;
FilenameLabel.Hide;
ClientHeight:= WizardForm.ClientHeight - ScaleY(230); // высота (с верху)
ClientWidth:= WizardForm.ClientWidth - ScaleX(100); // ширина (с низу)
CancelButton.Left:= WizardForm.CancelButton.Left - ScaleX(100); // отмена (вверх)
CancelButton.Top:= WizardForm.CancelButton.Top - ScaleY(230);
Bevel.Top:= WizardForm.Bevel.Top - ScaleY(230); // линия (вверх)
ProgressGauge.Top:= ScaleY(45);
ProgressGauge.Width:= ProgressGauge.Width - ScaleX(80);
ProgressGauge.Left:= (WizardForm.Width/2) - (ProgressGauge.Width/2); // прогрессбар (центрируем)
ProgressGauge.Parent:= WizardForm;
StatusLabel.Top:= ScaleY(10);
StatusLabel.Left:= (WizardForm.Width/2) - (ProgressGauge.Width/2); // текст (центрируем)
StatusLabel.Parent:= WizardForm;
end;
FilenameLabel.Top:= ScaleY(25);
FilenameLabel.Left:= (WizardForm.Width/2) - (WizardForm.ProgressGauge.Width/2); // текст (центрируем)
FilenameLabel.Parent:= WizardForm;
// новый StaticText...
with TNewStaticText.Create(WizardForm) do
begin
Left:= ScaleX(30); // отступ с левой стороны
Top:= WizardForm.Bevel.Top - ScaleY(6);
Enabled:= False;
Caption:= ' Copyright 2012 © Boss911 ';
Parent:= WizardForm;
end;
// окно по центру экрана
WizardForm.Position:= poScreenCenter;
// if not WizardSilent then WizardForm.Show;
if Pos('/verysilent', Lowercase(GetCmdTail)) = 0 then WizardForm.Show;
end
else WizardForm.NextButton.OnClick(WizardForm.NextButton);
end;
boss911
ну, как-то так. именно эту часть кода как-то менять не рекомендую.
[more=код]
Код: [Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
[*code]
function ShouldSkipPage(PageID: Integer): Boolean;
begin
Result := PageID <> wpInstalling; // Скрываем все страницы, кроме установки
end;
procedure WizardFormCreate(Sender: TObject);
begin
WizardForm.NextButton.OnClick(WizardForm.NextButton); // поскольку страница готовности все равно вылазит, нажмем кнопку далее
end;
procedure InitializeWizard();
begin
with WizardForm do
begin
ClientHeight:= WizardForm.ClientHeight - ScaleY(230); // высота (с верху)
ClientWidth:= WizardForm.ClientWidth - ScaleX(100); // ширина (с низу)
// окно по центру экрана делать лучше сразу, после задания размера окна
Position:= poScreenCenter;
OuterNotebook.Hide;
MainPanel.Hide;
FilenameLabel.Hide;
CancelButton.Left:= WizardForm.CancelButton.Left - ScaleX(100); // отмена (вверх)
CancelButton.Top:= WizardForm.CancelButton.Top - ScaleY(230);
Bevel.Top:= WizardForm.Bevel.Top - ScaleY(230); // линия (вверх)
ProgressGauge.Top:= ScaleY(45);
ProgressGauge.Width:= ProgressGauge.Width - ScaleX(80);
ProgressGauge.Left:= (WizardForm.Width/2) - (ProgressGauge.Width/2); // прогрессбар (центрируем)
ProgressGauge.Parent:= WizardForm;
StatusLabel.Top:= ScaleY(10);
StatusLabel.Left:= (WizardForm.Width/2) - (ProgressGauge.Width/2); // текст (центрируем)
StatusLabel.Parent:= WizardForm;
FilenameLabel.Top:= ScaleY(25);
FilenameLabel.Left:= (WizardForm.Width/2) - (WizardForm.ProgressGauge.Width/2); // текст (центрируем)
FilenameLabel.Parent:= WizardForm;
// новый StaticText...
with TNewStaticText.Create(WizardForm) do
begin
Left:= ScaleX(30); // отступ с левой стороны
Top:= WizardForm.Bevel.Top - ScaleY(6);
Enabled:= False;
Caption:= ' Copyright 2012 © Boss911 ';
Parent:= WizardForm;
end;
Show; // сперва показываем окно, иначе ничего не выйдет
OnCreate := @WizardFormCreate;
end;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpInstalling then WizardForm.Visible := Pos('/verysilent', Lowercase(GetCmdTail)) = 0; // в принципе не нужна, при verysilent и так будет скрыто вообще все
end;
ну, как-то так. именно эту часть кода как-то менять не рекомендую.
[more=код]
Код: [Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
[*code]
function ShouldSkipPage(PageID: Integer): Boolean;
begin
Result := PageID <> wpInstalling; // Скрываем все страницы, кроме установки
end;
procedure WizardFormCreate(Sender: TObject);
begin
WizardForm.NextButton.OnClick(WizardForm.NextButton); // поскольку страница готовности все равно вылазит, нажмем кнопку далее
end;
procedure InitializeWizard();
begin
with WizardForm do
begin
ClientHeight:= WizardForm.ClientHeight - ScaleY(230); // высота (с верху)
ClientWidth:= WizardForm.ClientWidth - ScaleX(100); // ширина (с низу)
// окно по центру экрана делать лучше сразу, после задания размера окна
Position:= poScreenCenter;
OuterNotebook.Hide;
MainPanel.Hide;
FilenameLabel.Hide;
CancelButton.Left:= WizardForm.CancelButton.Left - ScaleX(100); // отмена (вверх)
CancelButton.Top:= WizardForm.CancelButton.Top - ScaleY(230);
Bevel.Top:= WizardForm.Bevel.Top - ScaleY(230); // линия (вверх)
ProgressGauge.Top:= ScaleY(45);
ProgressGauge.Width:= ProgressGauge.Width - ScaleX(80);
ProgressGauge.Left:= (WizardForm.Width/2) - (ProgressGauge.Width/2); // прогрессбар (центрируем)
ProgressGauge.Parent:= WizardForm;
StatusLabel.Top:= ScaleY(10);
StatusLabel.Left:= (WizardForm.Width/2) - (ProgressGauge.Width/2); // текст (центрируем)
StatusLabel.Parent:= WizardForm;
FilenameLabel.Top:= ScaleY(25);
FilenameLabel.Left:= (WizardForm.Width/2) - (WizardForm.ProgressGauge.Width/2); // текст (центрируем)
FilenameLabel.Parent:= WizardForm;
// новый StaticText...
with TNewStaticText.Create(WizardForm) do
begin
Left:= ScaleX(30); // отступ с левой стороны
Top:= WizardForm.Bevel.Top - ScaleY(6);
Enabled:= False;
Caption:= ' Copyright 2012 © Boss911 ';
Parent:= WizardForm;
end;
Show; // сперва показываем окно, иначе ничего не выйдет
OnCreate := @WizardFormCreate;
end;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpInstalling then WizardForm.Visible := Pos('/verysilent', Lowercase(GetCmdTail)) = 0; // в принципе не нужна, при verysilent и так будет скрыто вообще все
end;
Помогите страницу приветствия (wpWelcom) превратить в обычный диалог с размером ScaleY(230) на ScaleX(100), где по центру будет надпись "Начать установку AppName?" (значение AppName из секции Setup), а вместо кнопок "Далее/Отмена" кнопки "Да/Нет".
boss911 делал несколько месяцев назад для одного хорошего человека, под свои нужды там несложно поменять, думаю.
[more=мини]
Код: [Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
[*Code]
procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
Confirm := False;
Cancel := true;
end;
procedure InitializeWizard();
begin
with WizardForm do
begin
AutoScroll := False;
ClientHeight := ScaleY(150);
ClientWidth := ScaleX(500);
OuterNotebook.Hide;
with Bevel do
begin
SetBounds(ScaleX(5), ScaleY(5), ScaleX(490), ScaleY(140));
Shape := bsFrame;
end;
with NextButton do
begin
Left := ScaleX(412);
Top := ScaleY(111);
end;
with CancelButton do
begin
Left := ScaleX(412);
Top := ScaleY(111);
end;
with DirBrowseButton do
begin
Left := ScaleX(417);
Top := ScaleY(40);
Parent := WizardForm;
end;
with DirEdit do
begin
SetBounds(ScaleX(8), ScaleY(39), ScaleX(396), ScaleY(21));
Parent := WizardForm;
end;
with SelectDirLabel do
begin
Parent := WizardForm;
SetBounds(ScaleX(8), ScaleY(8), ScaleX(484), ScaleY(28));
end;
with ReadyLabel do
begin
Parent := WizardForm;
SetBounds(ScaleX(8), ScaleY(104), ScaleX(396), ScaleY(28));
end;
with StatusLabel do
begin
Parent := WizardForm;
SetBounds(ScaleX(8), ScaleY(8), ScaleX(484), ScaleY(28));
end;
with FilenameLabel do
begin
Parent := WizardForm;
SetBounds(ScaleX(8), ScaleY(104), ScaleX(396), ScaleY(28));
end;
with ProgressGauge do
begin
SetBounds(ScaleX(8), ScaleY(70), ScaleX(484), ScaleY(28));
Parent := WizardForm;
end;
end;
end;
function ShouldSkipPage(PageID: Integer): Boolean;
begin
Result := PageID < wpReady;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
with WizardForm do
begin
with CancelButton do
begin
Width := ScaleX(0);
Height := ScaleY(0);
end;
ProgressGauge.Style := npbstMarquee;
case CurPageID of
wpReady :
begin
StatusLabel.Visible := False;
FilenameLabel.Visible := False;
end;
wpInstalling :
begin
ProgressGauge.Style := npbsNormal;
ReadyLabel.Visible := False;
SelectDirLabel.Visible := False;
NextButton.Visible := False;
DirEdit.Enabled := False;
DirBrowseButton.Enabled := False;
StatusLabel.Visible := True;
FilenameLabel.Visible := True;
with CancelButton do
begin
Width := ScaleX(80);
Height := ScaleY(23);
end;
end;
wpFinished :
begin
NextButton.Visible := True;
StatusLabel.Caption:= FinishedHeadingLabel.Caption;
FilenameLabel.Caption := FinishedLabel.Caption;
end;
end;
end;
end;
[more=мини]
Код: [Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
[*Code]
procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
Confirm := False;
Cancel := true;
end;
procedure InitializeWizard();
begin
with WizardForm do
begin
AutoScroll := False;
ClientHeight := ScaleY(150);
ClientWidth := ScaleX(500);
OuterNotebook.Hide;
with Bevel do
begin
SetBounds(ScaleX(5), ScaleY(5), ScaleX(490), ScaleY(140));
Shape := bsFrame;
end;
with NextButton do
begin
Left := ScaleX(412);
Top := ScaleY(111);
end;
with CancelButton do
begin
Left := ScaleX(412);
Top := ScaleY(111);
end;
with DirBrowseButton do
begin
Left := ScaleX(417);
Top := ScaleY(40);
Parent := WizardForm;
end;
with DirEdit do
begin
SetBounds(ScaleX(8), ScaleY(39), ScaleX(396), ScaleY(21));
Parent := WizardForm;
end;
with SelectDirLabel do
begin
Parent := WizardForm;
SetBounds(ScaleX(8), ScaleY(8), ScaleX(484), ScaleY(28));
end;
with ReadyLabel do
begin
Parent := WizardForm;
SetBounds(ScaleX(8), ScaleY(104), ScaleX(396), ScaleY(28));
end;
with StatusLabel do
begin
Parent := WizardForm;
SetBounds(ScaleX(8), ScaleY(8), ScaleX(484), ScaleY(28));
end;
with FilenameLabel do
begin
Parent := WizardForm;
SetBounds(ScaleX(8), ScaleY(104), ScaleX(396), ScaleY(28));
end;
with ProgressGauge do
begin
SetBounds(ScaleX(8), ScaleY(70), ScaleX(484), ScaleY(28));
Parent := WizardForm;
end;
end;
end;
function ShouldSkipPage(PageID: Integer): Boolean;
begin
Result := PageID < wpReady;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
with WizardForm do
begin
with CancelButton do
begin
Width := ScaleX(0);
Height := ScaleY(0);
end;
ProgressGauge.Style := npbstMarquee;
case CurPageID of
wpReady :
begin
StatusLabel.Visible := False;
FilenameLabel.Visible := False;
end;
wpInstalling :
begin
ProgressGauge.Style := npbsNormal;
ReadyLabel.Visible := False;
SelectDirLabel.Visible := False;
NextButton.Visible := False;
DirEdit.Enabled := False;
DirBrowseButton.Enabled := False;
StatusLabel.Visible := True;
FilenameLabel.Visible := True;
with CancelButton do
begin
Width := ScaleX(80);
Height := ScaleY(23);
end;
end;
wpFinished :
begin
NextButton.Visible := True;
StatusLabel.Caption:= FinishedHeadingLabel.Caption;
FilenameLabel.Caption := FinishedLabel.Caption;
end;
end;
end;
end;
Gnom3
Спасибо. Ошибка. И так два раза, потом пошла распаковка.
Спасибо. Ошибка. И так два раза, потом пошла распаковка.
Цитата:
Ошибка.
это нужно смотреть весь скрипт, возможен конфликт между вашим кодом и моим - там довольно хлипкое равновесие в системе обмана инсталла, при сокрытии страницы готовности.
Gnom3
Вы правы, мешает мой код. Посему давайте в ПМ.
Вы правы, мешает мой код. Посему давайте в ПМ.
Update
Подскажите, пожалуйста, как задать расположение для файла uninstallexe?
Например, если в инсталяторе задана установка в C:\Tool\ как сделать, чтобы экзешник деинсталятора находился в C:\Tool\Uninstall\ ?
innonewbie, спасибо
Например, если в инсталяторе задана установка в C:\Tool\ как сделать, чтобы экзешник деинсталятора находился в C:\Tool\Uninstall\ ?
innonewbie, спасибо
Gideon Vi, вроде так можно:
[Setup]
UninstallFilesDir= "{app}\Uninstall"
[Setup]
UninstallFilesDir= "{app}\Uninstall"
Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
Предыдущая тема: поиск
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.