Ru-Board.club
← Вернуться в раздел «Программы»

» Inno Setup (создание инсталяционных пакетов)

Автор: chelobey
Дата сообщения: 16.05.2008 07:56
привет.

подскажите, как сделать выбор компонентов на две страницы (или более)?
поясню. на первой - основной выбор компонентов (игровой инсталлятор, где есть возможность выбора установки модов), вторая же активируется лишь в том случае, если выбран компонент, включающий дополнительные его настройки (в данном случае - мода).

вид первой страницы - кнопки переключения без вложений (хотя можно и сними)
вид второй - тоже кнопки переключения, но с вложениями (деревом подкомпонентов)

и, соответственно, в зависимости от выбранных компонентов, установить нужные файлы.

спасибо
Автор: AlexDJ666
Дата сообщения: 16.05.2008 10:22
Вот и у меня подобный вопрос Только сразу с использованием TMemo
Автор: SotM
Дата сообщения: 16.05.2008 10:57
Вопрос насчет пути установки.
Насколько я знаю, программа будет устанавливаться в WizardDirValue папку. А значение WizardDirValue получаем из диалога при выборе пути установки.
Но я не хочу использовать данный Визард, и соответственно данное окно мне не нужно.
Как же тогда изменить данный путь? Переменная WizardDirValue только для чтения (вроде как).

Я пробовал даже так:

[Files]
Source: dumb.txt; DestDir: {code:GetAppDir}; Flags: ignoreversion

[Code]
function GetAppDir(param: String): String;
begin
Result := 'SuperTestFolder';
end;

Но когда появляется окно с кнопкой "Установить", то путь лишь указывает на папку установленную по-умолчанию. А как вот сделать, чтобы этот путь менялся внутри секции [code]?
Автор: Sampron
Дата сообщения: 16.05.2008 13:49
SotM
Немного непонятен вопрос.

Цитата:
Но я не хочу использовать данный Визард, и соответственно данное окно мне не нужно.

Если отключить эту страницу то на странице wpReady не будет отображатся путь установки.
Автор: SotM
Дата сообщения: 16.05.2008 15:00
Sampron
Что именно не понятно?

Я не отключаю эту страницу, а просто ее пропускаю в ShouldSkipPage.
Если можно было контролировать весь процесс установки/распаковки, то я бы полностью отказался от всех страниц визарда. А так мне нужна последняя страница перед установкой.
Но вопрос не в этом, а в том как этот путь установки изменить не используя соответствующую страницу в Визарде?
Автор: Sampron
Дата сообщения: 16.05.2008 16:08
SotM
Наверно проще отключить страницу Ready и оставить страницу выбора установки или писать новую страницу выбора установки.
Автор: SotM
Дата сообщения: 16.05.2008 18:47

Цитата:
Наверно проще отключить страницу Ready и оставить страницу выбора установки или писать новую страницу выбора установки.

Чёто я не понял что ты сказал.

Если я отключу страницу Ready, то как же сама установка начнется?!
И откуда инсталлятор будет знать куда устанавливаться?! WizardDirValue я же не могу изменить.
Автор: Sampron
Дата сообщения: 16.05.2008 19:01
SotM

Цитата:
Если я отключу страницу Ready, то как же сама установка начнется?!

Если страница выбора установки не отображена то установка начнется сразу после запуска *.ехе

Цитата:
И откуда инсталлятор будет знать куда устанавливаться?!

Устанавливатся будет туда, куда пропишешь путь в секции Files.

Автор: SotM
Дата сообщения: 16.05.2008 21:25

Цитата:
Если страница выбора установки не отображена то установка начнется сразу после запуска *.ехе

Дык, ну тогда я же не смогу вывести на экран диалоговое окно с настройками установки!


Цитата:
Устанавливатся будет туда, куда пропишешь путь в секции Files.

Ээээ, я же писал, что нужно чтоб менялся путь в секции Code, а не в другой секции (например Files).
Автор: RedGeek
Дата сообщения: 17.05.2008 12:31
Как можно удалить папку в директории Application Data до установки?

Очевидно, используя DelTree, но у меня ничего не получается - не может отпарсить {userappdata}.
Вот мой код:
function InitializeSetup(): Boolean;
var
ErrorCode: Integer;
begin
DelTree({userappdata}'\123', True, True, True);
Result:=True;
end;
Автор: Sampron
Дата сообщения: 17.05.2008 12:57
RedGeek
DelTree(ExpandConstant('{userappdata}\123'), True, True, True)
Автор: shurman31
Дата сообщения: 18.05.2008 23:16
Здравствуйте! не подскажете как запускать внешнюю программу (в данном случае 'C:\\setup\mysql\setup.msi') после установки основной программы только чтобы путь был относительно папки, в которой лежит setup.exe основной программы.


[Code]

procedure CurStepChanged(CurStep: TSetupStep);
var
ResultCode: Integer;
begin

if (CurStep = ssPostInstall) and (MsgBox('Для установки программы необходим MySQL Server 5.0 и выше.Установить MySQL Server version 1.0.24a?', mbInformation, mb_YesNo) = IDYES)
then begin
ShellExec('', ExpandConstant('C:\\setup\mysql\setup.msi'),'', '', SW_SHOW, ewWaitUntilTerminated, ResultCode);
end;


if (CurStep = ssDone)
then begin

ShellExec('', ExpandConstant('C:\\setup\database\query.bat'),'', '', SW_SHOW, ewWaitUntilTerminated, ResultCode);
MsgBox('Программа установлена!' , mbInformation, MB_OK);
end;
end;
Автор: Sampron
Дата сообщения: 18.05.2008 23:53
shurman31
ExpandConstant('{src}\...
Автор: serg_aka_lain
Дата сообщения: 19.05.2008 00:19
shurman31

Если .msi рядом с инсталлятором то так примерно (на мой взгляд должно работать)

Exec('msiexec', '/i Product.msi', ExpandConstant('{src}'), SW_Show, ewWaitUntilTerminated , ErrorCode);

Автор: cepbl4
Дата сообщения: 19.05.2008 23:44
Привет всем!

Осваиваю Inno setup уже давно, но только сейчас решил поработать с блоком [Code]

Сделал простой инсталл игры: файлы, пару параметров реестра, значки.., и решил замутить фоновую картинку bmp и наложил новые текстуры на кнопки. После долгих чертыханий по поводу неумения соединить 2 кода для вышеперечисленного из Руководства по расширенным возможностям Inno Setup 5.1 (не для чайников) от Kindly, все-таки соединил и вроде бы все заработало, скомпилил инсталл, запускаю, по умолчанию папка ц:\гамес, а там не хватает места для моей игрушки, вылазит окно, ругается на недостаток места, нажимаю продолжить -> Да (Нет тоже пробовал та же фигня) и кнопка Далее становится зажатой (в моем случае оранжевой, а ненажатая - синяя) на всех остальных окнах, если нажать Назад, кнопка Далее приобретает нормальный для себя синий цвет.

Помогите, plz, Инно-Гуру
Автор: RRRRR
Дата сообщения: 20.05.2008 15:01
Помогите решить задачку, нужно перезаписать файл boot.ini, но файл с атрибутом скрытый и перезаписываться не в какую не хочет
Автор: serg_aka_lain
Дата сообщения: 20.05.2008 18:52
RRRRR

Цитата:
нужно перезаписать файл boot.ini

Если не секрет, для чего?

А по существу вопроса. файл является (защищенным системным), то так (примерно):
1. Снять с него атрибуты
2. если надо презаписать, то удалить
3. создать новый,
Ну и вернуть ему атрибуты.

и AllowRootDirectory=True
Автор: AlexDJ666
Дата сообщения: 21.05.2008 06:00
Здравствуйте еще раз, инно-гуру

Есть у меня проект инсталлятора. В нем будут несколько страниц, на каждой из которых будут свои списки установочных файлов. Страницы у меня уже прорисованы, списки составлены, осталось только связать нарисованные мной списки с фактически необходимыми файлами и вот тут моих знаний пока не хватает, к сожалению.
Я так понимаю, что разделы [Components], [Types] и [Files] здесь использовать не получится?
Вот прикладываю ниже код, который пока получился:

[more]
#expr Exec("cmd ", "/c echo #define DateTime '%DATE% %TIME:~0,8%' > data.iss")
#define BuildNum Int(ReadIni(SourcePath + "\\BuildInfo.ini","Info","Build","0"))
#expr BuildNum = BuildNum + 1
#expr WriteIni( SourcePath + "\\BuildInfo.ini","Info","Build", BuildNum )

#include "data.iss"

#define Bevel "сборник скомпилирован " + DateTime

[Setup]

AppName=AlexDJ Addon Pack
AppVerName=AlexDJ Addon Pack v2.6
AppPublisher=AlexDJ
AppPublisherURL=http://wow.panterkin.ru/
AppSupportURL=http://wow.panterkin.ru/
AppUpdatesURL=http://wow.panterkin.ru/
DefaultDirName=D:\Games\WoW\
DefaultGroupName=AlexDJ's Addon Pack
DisableProgramGroupPage=yes
AllowNoIcons=yes
;LicenseFile=license.txt
;InfoBeforeFile=infobefore.txt
;InfoAfterFile=infoafter.txt
OutputDir=!_Ready
CreateAppDir=false

[Types]
Name: custom; Description: Выборочная установка
;Name: "full"; Description: "Полная установка"
Name: minimal; Description: Минимальная установка; Flags: iscustom

Name: rus; Description: Установка только русификатора

Name: druid; Description: Набор аддонов, оптимизированный для игры друидом
Name: hunter; Description: Набор аддонов, оптимизированный для игры охотником
Name: mage; Description: Набор аддонов, оптимизированный для игры магом
Name: paladin; Description: Набор аддонов, оптимизированный для игры паладином
Name: priest; Description: Набор аддонов, оптимизированный для игры священником
Name: rogue; Description: Набор аддонов, оптимизированный для игры разбойником
Name: shaman; Description: Набор аддонов, оптимизированный для игры шаманом
Name: warlock; Description: Набор аддонов, оптимизированный для игры варлоком
Name: warrior; Description: Набор аддонов, оптимизированный для игры воином

[Files]
Source: compiler:WizModernSmallImage.bmp; DestDir: {tmp}; Flags: dontcopy;
Source: compiler:WizModernSmallImage-IS.bmp; DestDir: {tmp}; Flags: dontcopy;

Source: isxbb.dll; DestDir: {tmp}; Flags: dontcopy
Source: wow.jpg; DestDir: {tmp}; Flags: dontcopy
;Source: wow.bmp; DestDir: {tmp}; Flags: dontcopy
;Source: readme.doc; DestDir: {app}; Flags: isreadme


[Messages]
BeveledLabel=AlexDJ's Addon Pack (c) Night Strangers Guild - {#Bevel}
WizardSelectProgramGroup=
SelectStartMenuFolderDesc=Где программа установки должна создать ярлыки?

[_Code]
Var
Page: TWizardPage;
Text1,Text2,Text3,Text101: TNewStaticText;
Panel: TPanel;
ListBox: TListBox;
Check101,Check102,Check103,Check104: TCheckBox;
NoChecks,Label101,Label102,Label103,Label104: TLabel;
Image101: TBitmapImage;

Function Checked101: Boolean;
begin
Result:=Check101.Checked
end;

Function Checked102: Boolean;
begin
Result:=Check102.Checked
end;

Function Checked103: Boolean;
begin
Result:=Check103.Checked
end;

Function Checked104: Boolean;
begin
Result:=Check104.Checked
end;

Procedure Check101OnClick (Sender: TObject);
begin
Check101.Checked:=Not(Check101.Checked)
end;

Procedure Check102OnClick (Sender: TObject);
begin
Check102.Checked:=Not(Check102.Checked)
end;

Procedure Check103OnClick (Sender: TObject);
begin
Check103.Checked:=Not(Check103.Checked)
end;

Procedure Check104OnClick (Sender: TObject);
begin
Check104.Checked:=Not(Check104.Checked)
end;

procedure Check101MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
Text101.Enabled:=True
Text101.Caption:='Описание первого компонента'
Image101.Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizModernSmallImage.bmp'))
Image101.Visible:=True
end;

procedure Check102MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
Text101.Enabled:=True
Text101.Caption:='Описание второго компонента'
Image101.Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizModernSmallImage-IS.bmp'))
Image101.Visible:=True
end;

procedure Check103MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
Text101.Enabled:=True
Text101.Caption:='Описание третьего компонента'
Image101.Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizModernSmallImage.bmp'))
Image101.Visible:=True
end;

procedure Check104MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
Text101.Enabled:=True
Text101.Caption:='Описание четвертого компонента'
Image101.Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizModernSmallImage-IS.bmp'))
Image101.Visible:=True
end;

procedure NoChecksMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
Text101.Enabled:=False
Text101.Caption:='Наведите курсор мыши на название компонента, чтобы прочесть его описание.'
Image101.Visible:=False
end;

var
MouseLabel,SiteLabel: TLabel;

procedure SiteLabelOnClick(Sender: TObject);
var
ErrorCode: Integer;
begin
ShellExec('open', 'http://wow.panterkin.ru/', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode)
end;

procedure SiteLabelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=clRed
end;

procedure SiteLabelMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=clBlue
end;

procedure SiteLabelMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=clGreen
end;

procedure SiteLabelMouseMove2(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=clBlue
end;

const // Fade-эффект
AW_FADE_IN = $00080000;
AW_FADE_OUT = $00090000;
AW_SLIDE_IN_LEFT = $00040001;
AW_SLIDE_OUT_LEFT = $00050002;
AW_SLIDE_IN_RIGHT = $00040002;
AW_SLIDE_OUT_RIGHT = $00050001;
AW_SLIDE_IN_TOP = $00040004;
AW_SLIDE_OUT_TOP = $00050008;
AW_SLIDE_IN_BOTTOM = $00040008;
AW_SLIDE_OUT_BOTTOM = $00050004;
AW_DIAG_SLIDE_IN_TOPLEFT = $00040005;
AW_DIAG_SLIDE_OUT_TOPLEFT = $0005000a;
AW_DIAG_SLIDE_IN_TOPRIGHT = $00040006;
AW_DIAG_SLIDE_OUT_TOPRIGHT = $00050009;
AW_DIAG_SLIDE_IN_BOTTOMLEFT = $00040009;
AW_DIAG_SLIDE_OUT_BOTTOMLEFT = $00050006;
AW_DIAG_SLIDE_IN_BOTTOMRIGHT = $0004000a;
AW_DIAG_SLIDE_OUT_BOTTOMRIGHT = $00050005;
AW_EXPLODE = $00040010;
AW_IMPLODE = $00050010;

function AnimateWindow(hWnd: HWND; dwTime: DWORD; dwFlags: DWORD): Boolean;
external 'AnimateWindow@user32 stdcall';

// Фоновая картинка

const
BACKGROUND=6;

function isxbb_AddImage(Image: PChar; Flags: Cardinal): Integer;
external 'isxbb_AddImage@files:isxbb.dll stdcall';

function isxbb_Init(hWnd: Integer): Integer;
external 'isxbb_Init@files:isxbb.dll stdcall';



Procedure InitializeWizard();
var
Lbl: TLabel;
Memo: TMemo;
Bmp: TBitmapImage;
begin


begin // Фоновая картинка
ExtractTemporaryFile('wow.jpg');
isxbb_AddImage(ExpandConstant('{tmp}')+'\wow.jpg',BACKGROUND);
isxbb_Init(StrToInt(ExpandConstant('{hwnd}')));
end;

begin // Отключаем кнопку "свернуть"
WizardForm.BorderIcons:=[biSystemMenu]
end;


begin // Fade-эффект
AnimateWindow(WizardForm.Handle,500,AW_DIAG_SLIDE_IN_BOTTOMRIGHT);
end;

// Ссылка на домашнюю страницу

begin
MouseLabel:=TLabel.Create(WizardForm)
MouseLabel.Width:=WizardForm.Width
MouseLabel.Height:=WizardForm.Height
MouseLabel.Autosize:=False
MouseLabel.Transparent:=True
MouseLabel.OnMouseMove:=@SiteLabelMouseMove2
MouseLabel.Parent:=WizardForm

SiteLabel:=TLabel.Create(WizardForm)
SiteLabel.Left:=40
SiteLabel.Top:=400
SiteLabel.Cursor:=crHand
SiteLabel.Font.Color:=clBlue
SiteLabel.Caption:='Домашняя страница'
SiteLabel.OnClick:=@SiteLabelOnClick
SiteLabel.OnMouseDown:=@SiteLabelMouseDown
SiteLabel.OnMouseUp:=@SiteLabelMouseUp
SiteLabel.OnMouseMove:=@SiteLabelMouseMove
SiteLabel.Parent:=WizardForm
end;

ExtractTemporaryFile('WizModernSmallImage.bmp')
ExtractTemporaryFile('WizModernSmallImage-IS.bmp')

// Скрываем элементы в Визард-форме

//WizardForm.Bevel.Hide
//WizardForm.Bevel1.Hide
WizardForm.MainPanel.Hide
WizardForm.BeveledLabel.Hide
//WizardForm.OuterNotebook.Hide
//WizardForm.InnerNotebook.Hide
WizardForm.BackButton.Hide

WizardForm.DiskSpaceLabel.Hide;
//WizardForm.LicenseMemo.Hide
//WizardForm.LicenseAcceptedRadio.Hide
//WizardForm.LicenseNotAcceptedRadio.Hide
//WizardForm.PasswordEdit.Hide
//WizardForm.InfoBeforeMemo.Hide
//WizardForm.UserInfoNameEdit.Hide
//WizardForm.UserInfoOrgEdit.Hide
//WizardForm.UserInfoSerialEdit.Hide
//WizardForm.DirEdit.Hide
//WizardForm.DirBrowseButton.Hide
//WizardForm.TypesCombo.Hide
//WizardForm.ComponentsList.Hide
//WizardForm.GroupEdit.Hide
//WizardForm.GroupBrowseButton.Hide
//WizardForm.NoIconsCheck.Hide
//WizardForm.TasksList.Hide
//WizardForm.ReadyMemo.Hide
//WizardForm.ProgressGauge.Hide
//WizardForm.InfoAfterMemo.Hide

WizardForm.RunList.Hide

// Верхняя (main) панель

WizardForm.MainPanel.Left :=0
WizardForm.MainPanel.Top :=20
WizardForm.MainPanel.Width :=550
WizardForm.MainPanel.Height :=40

// Заголовок страницы

WizardForm.PageNameLabel.Left:=52
WizardForm.PageNameLabel.Top:=20
WizardForm.PageNameLabel.Width:=525
WizardForm.PageNameLabel.Height:=20
WizardForm.PageNameLabel.Autosize:=True
WizardForm.PageNameLabel.WordWrap:=False
//WizardForm.PageNameLabel.Color:=$663300
WizardForm.PageNameLabel.Font.Color:=$000000
WizardForm.PageNameLabel.Parent:=WizardForm

// Строка BevelLabel

WizardForm.BeveledLabel.Left:=40
WizardForm.BeveledLabel.Top:=435

// Строка Bevel (полоска под заголовком)

WizardForm.Bevel.Left :=40
WizardForm.Bevel.Top :=390
WizardForm.Bevel.Width :=555
WizardForm.Bevel.Height :=2

// Строка Bevel1 (полоска над кнопками)

WizardForm.Bevel1.Left :=0
WizardForm.Bevel1.Top :=40
WizardForm.Bevel1.Width :=555
WizardForm.Bevel1.Height:=2

// Визард-форма

WizardForm.Top := 100
WizardForm.Left := 100
WizardForm.Width := 650
WizardForm.Height := 500

// Кнопка "Back"

WizardForm.BackButton.Left := 265
WizardForm.BackButton.Top := 400
WizardForm.BackButton.Width := 90
WizardForm.BackButton.Height := 20

// Кнопка "Next"

WizardForm.NextButton.Left := 367
WizardForm.NextButton.Top := 400
WizardForm.NextButton.Width := 90
WizardForm.NextButton.Height := 20

// Кнопка "Cancel"

WizardForm.CancelButton.Left := 500
WizardForm.CancelButton.Top := 400
WizardForm.CancelButton.Width := 90
WizardForm.CancelButton.Height := 20

// Внешний фрейм

WizardForm.OuterNotebook.Left := 40
WizardForm.OuterNotebook.Top := 0
WizardForm.OuterNotebook.Width := 550
WizardForm.OuterNotebook.Height := 375

// Внутренний фрейм

WizardForm.InnerNotebook.Left := 0
WizardForm.InnerNotebook.Top := 70
WizardForm.InnerNotebook.Width := 550
WizardForm.InnerNotebook.Height := 375

// Заголовок страницы
Page:=CreateCustomPage(1, 'Основные аддоны', 'Выберите компоненты, которые вы хотите установить.')
#include "skin/main.iss"
Page:=CreateCustomPage(2, 'Классовые аддоны', 'Выберите компоненты, которые вы хотите установить.')
//#include "skin/classes.iss"
Page:=CreateCustomPage(3, 'Карты', 'Выберите компоненты, которые вы хотите установить.')
//#include "skin/maps.iss"

end;

procedure CurPageChanged(CurPageID: Integer);
begin
If CurPageID=wpWelcome then
begin
WizardForm.NextButton.OnClick(WizardForm.NextButton);
end;
end;

// Надпись при нажатии кнопки ОТМЕНА

procedure CancelButtonClick(CurPage: Integer; var Cancel, Confirm: Boolean);
begin
Cancel:=False;
Confirm:=False;
if MsgBox('Вы действительно хотите отменить установку?', mbError, MB_YESNO) = idYes
then
Cancel:=true;
end;

[/more]

и инклуд с нарисованной страницей:

[more]
[Components]

Name: rus; Description: Русификатор; Types: rus
Name: rus/RuWOW; Description: RuWOW; Types: rus
Name: rus/Talents; Description: Русификация талантов; Types: rus
Name: rus/NPC; Description: Русификация речи NPC; Types: rus

Name: main; Description: Основные аддоны; Types:
Name: main/dependance; Description: Обязательные аддоны; Types: minimal custom; Flags: fixed dontinheritcheck checkablealone; Languages:
Name: main/save; Description: Автосейв; Types: custom

[Files]
;Source: Addons\Rus\RuWOW\*; DestDir: {app}; Components: rus/RuWOW; Flags: ignoreversion recursesubdirs createallsubdirs
Source: Addons\Rus\Talents\*; DestDir: {app}/Interface/Addons; Components: rus/Talents; Flags: ignoreversion recursesubdirs createallsubdirs
;Source: Addons\Rus\NPC\*; DestDir: {app}; Components: rus/NPC; Flags: ignoreversion recursesubdirs createallsubdirs


Source: Addons\Main\AutoSave\*; DestDir: {app}/Interface/Addons; Components: main/save; Flags: ignoreversion recursesubdirs createallsubdirs

[_CODE]

// Блок скриншотов

Memo :=TMemo.Create(WizardForm)
Memo.SetBounds (16,161,198,143)
Memo.Color :=clBtnFace
Memo.Enabled :=False
Memo.BorderStyle :=bsNone
Memo.Parent :=Page.Surface

Bmp :=TBitmapImage.Create(WizardForm)
Bmp.SetBounds (15,160,200,145)
Bmp.AutoSize :=False
Bmp.BackColor :=$cccccc
Bmp.Parent :=Page.Surface

Image101 :=TBitmapImage.Create(WizardForm)
Image101.Left :=10
Image101.Top :=10;
Image101.Width :=55
Image101.Height :=55
Image101.Parent :=Memo

// Блок описания компонентов

Memo :=TMemo.Create(WizardForm)
Memo.SetBounds (231,1,288,303)
Memo.Color :=clBtnFace
Memo.Enabled :=False
Memo.BorderStyle :=bsNone
Memo.Parent :=Page.Surface

Bmp :=TBitmapImage.Create(WizardForm)
Bmp.SetBounds (230,0,290,305)
Bmp.AutoSize :=False
Bmp.BackColor :=$cccccc
Bmp.Parent :=Page.Surface

Text101 :=TNewStaticText.Create(Page)
Text101.Left :=15
Text101.Top :=15
Text101.Width :=260
Text101.Height :=275
Text101.AutoSize :=False
Text101.WordWrap :=True
Text101.Parent :=Memo

NoChecks :=TLabel.Create(Page)
NoChecks.Width :=WizardForm.Width
NoChecks.Height :=WizardForm.Height
NoChecks.Autosize :=False
NoChecks.Transparent :=True
NoChecks.OnMouseMove :=@NoChecksMouseMove
NoChecks.Parent :=Page.Surface

// Список компонентов

ListBox := TListBox.Create(Page)
ListBox.Left := 15
ListBox.Top := 0
ListBox.Width := 200
ListBox.Height := 145
//ListBox.BorderStyle := bsNone
ListBox.Parent := Page.Surface

Check101:=TCheckBox.Create(Page)
Check101.Left:=2
Check101.Top:=0
Check101.Width:=196
Check101.Checked:=True
Check101.Parent:=ListBox

Check102:=TCheckBox.Create(Page)
Check102.Left:=2
Check102.Top:=16
Check102.Width:=196
Check102.Checked:=True
Check102.Parent:=ListBox

Check103:=TCheckBox.Create(Page)
Check103.Left:=2
Check103.Top:=32
Check103.Width:=196
Check103.Checked:=True
Check103.Parent:=ListBox

Check104:=TCheckBox.Create(Page)
Check104.Left:=2
Check104.Top:=48
Check104.Width:=196
Check104.Checked:=True
Check104.Parent:=ListBox

Label101:=TLabel.Create(Page)
Label101.Autosize:=True
Label101.WordWrap:=False
Label101.Left:=16
Label101.Top:=2
Label101.Caption:='RuWOW'
Label101.OnClick:=@Check101OnClick
Label101.OnMouseMove:=@Check101MouseMove
Label101.Parent:=Check101

Label102:=TLabel.Create(Page)
Label102.Autosize:=True
Label102.WordWrap:=False
Label102.Left:=16
Label102.Top:=2
Label102.Caption:='Русификация талантов'
Label102.OnClick:=@Check102OnClick
Label102.OnMouseMove:=@Check102MouseMove
Label102.Parent:=Check102

Label103:=TLabel.Create(Page)
Label103.Autosize:=True
Label103.WordWrap:=False
Label103.Left:=16
Label103.Top:=2
Label103.Caption:='Русификация речи NPC'
Label103.OnClick:=@Check103OnClick
Label103.OnMouseMove:=@Check103MouseMove
Label103.Parent:=Check103

Label104:=TLabel.Create(Page)
Label104.Autosize:=True
Label104.WordWrap:=False
Label104.Left:=16
Label104.Top:=2
Label104.Caption:='Автосейв'
Label104.OnClick:=@Check104OnClick
Label104.OnMouseMove:=@Check104MouseMove
Label104.Parent:=Check104
[/more]
Автор: Chanka
Дата сообщения: 21.05.2008 08:35
Подскажите, пожалуйста, как записать это

Form.ActiveControl := CancelButton;

только как это сделать с WizardForm. В частности надо чтобы на wpWelcome чтобы отмена "светилась".

Спасибо!
Автор: Sampron
Дата сообщения: 21.05.2008 09:13
Chanka
WizardForm.CancelButton.TabOrder:=3
Автор: Chanka
Дата сообщения: 21.05.2008 09:27
Sampron
Спасиб большое
Автор: AlexDJ666
Дата сообщения: 21.05.2008 09:55
А мне помочь?
Автор: Gekkon1976
Дата сообщения: 21.05.2008 15:48
Как применить изменение в реестре без перезагрузки компьютера?
Как правильно описать команду в Inno Setup:
SendMessage(HWND_BROADCAST, WM_WININICHANGE, 0, ..)
Автор: Sampron
Дата сообщения: 21.05.2008 16:46
Gekkon1976
[Setup]
ChangesAssociations=yes
Автор: PolluxVonTXII
Дата сообщения: 21.05.2008 16:58
Уважаемые!

Как в этом [more="Скрипте"]function InitializeSetup(): Boolean;
var
ResultCode: Integer;
s, ResultStr:string;
begin
Result:=True;
If not RegKeyExists(HKLM, 'SOFTWARE\MY_PROGRAM')
then
begin
MsgBox('Программа MY_PROGRAM не установлена или установлена неверно.' #13#13 'Дальнейшая работа мастера невозможна.', mbError, mb_Ok);
Result:=False;
end[/more] прописать не только проверку ключа реестра, а ещё и значание. В MY_PROGRAM есть к примеру строковый параметр Version со значением 1.0. Вот именно его версия и проверялась
Автор: geranik
Дата сообщения: 21.05.2008 19:20
PolluxVonTXII [more=это]
[code]
function InitializeSetup(): Boolean;
var
ver :string;
begin
Result:=True;
If not RegKeyExists(HKLM, 'SOFTWARE\MY_PROGRAM')
then
begin
MsgBox('Программа MY_PROGRAM не установлена или установлена неверно.' #13#13 'Дальнейшая работа мастера невозможна.', mbError, mb_Ok);
Result:=False;
end else
begin
RegQueryStringValue(HKLM, 'SOFTWARE\MY_PROGRAM','version', ver )
if ver='1.0' then
begin
MsgBox('версия в порядке', mbinformation, mb_Ok);
Result:=true;
end else
MsgBox('несовместимая версия', mbError, mb_Ok);
Result:=False;
end;
end;


[/more]
Автор: PolluxVonTXII
Дата сообщения: 21.05.2008 19:38
geranik, да именно то, что нужно, благодарю!
Автор: SotM
Дата сообщения: 21.05.2008 19:40
Сейчас решил воспользоваться Corona'ой. Возникли несколько вопросов:
1. Почему в начале не появляется диалог выбора языка?
Хотя у меня выставлено: ShowLanguageDialog=yes
2. Wizard как-то медленно прорисовывается, это так и должно быть?!
3. Нельзя ли выключить все эти красивые рюшечки и использовать классический скин?

Автор: EagleSH
Дата сообщения: 21.05.2008 20:10
господа подскажите, задача:

делаем бекграунд из картинки, и сверху этого бэкграунда слайд-шоу (размер скринов соответственно меньше) + бордер скринам выставлять, нужного размера (1,2,3 и тд пиксилей) и нужного цвета (чёрный, белый и тд) + определнеие широкий монитор или нет и в зависимости от этого бэкграунд ставим обычный или широкий (1280х1024 или 1680х1050 соответственно), как в Stranglehold.
Автор: cepbl4
Дата сообщения: 21.05.2008 21:09
Привет всем!

Осваиваю Inno setup уже давно, но только сейчас решил поработать с блоком [Code]

Сделал простой инсталл игры: файлы, пару параметров реестра, значки.., и решил замутить фоновую картинку bmp и наложил новые текстуры на кнопки. После долгих чертыханий по поводу неумения соединить 2 кода для вышеперечисленного из Руководства по расширенным возможностям Inno Setup 5.1 (не для чайников) от Kindly, все-таки соединил и вроде бы все заработало, скомпилил инсталл, запускаю, по умолчанию папка ц:\гамес, а там не хватает места для моей игрушки, вылазит окно, ругается на недостаток места, нажимаю продолжить -> Да (Нет тоже пробовал та же фигня) и кнопка Далее становится зажатой (в моем случае оранжевой, а ненажатая - синяя) на всех остальных окнах, если нажать Назад, кнопка Далее приобретает нормальный для себя синий цвет.

Помогите, plz, Инно-Гуру

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Поиск в WinDjView


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.