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

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

Автор: Chanka
Дата сообщения: 08.05.2008 16:15
Хорошо Sampron! Спасибо!
Автор: Sampron
Дата сообщения: 08.05.2008 16:33
Chanka
Исправил, лучше подключать стандартный компонент:

procedure CancelButtonClick(CurPage: Integer; var Cancel, Confirm: Boolean);
begin
Cancel:=True
if WizardForm.WelcomeLabel1.Visible = True then
Confirm:=True
else
Confirm:=False
end;
Автор: Chanka
Дата сообщения: 08.05.2008 16:40
Sampron

Благодарю! Всё работает!

Добавлено:
Sampron
Назрел еще один вопросик.
Вот ставлю
WizardForm.BorderStyle := bsDialog; в InitializeWizard(); Чтобы убрать значки.
А как если Repair как всё вернуть?
Автор: Sampron
Дата сообщения: 08.05.2008 18:50
Chanka
bsSingle
Автор: Chanka
Дата сообщения: 08.05.2008 20:45
Sampron
Спасибо!
Автор: MogilShik2007
Дата сообщения: 09.05.2008 04:06
Чёт мне никто не ответил
Еще раз:

Чёт сделал как писалось выше со скином корона, а толку ноль, инсталлер собирается при,запуске выдаёт ошибку ,чёт типа CancelHint... error вроде е32
Два вопроса:
Как нормально зашифровать инсталлер? Пробовал по руководству которое в шапке, инсталлер всеравно разбирается...
И какое значение нужно прописать чтоб галочки автоматом выставлялись?..
Автор: Raf_SE
Дата сообщения: 09.05.2008 21:00
Как сделать чтоб файлы устанавливались только когда они хоть чемто отличаются от тех которые в инсталляторе? Ну т.е. файлы в инсталляторе и в папке назначения сверялись (хз по чему, к примеру по времени или лучше по CRC), одинаковые файлы не устанавливались, а те которые хоть чемто отличаются, перезаписывались.
Автор: Victor_Dobrov
Дата сообщения: 10.05.2008 02:31
MogilShik2007 - текущая версия Corona Skin собирается без ошибок. Подробности смотри в ReadMe.rtf.
Для поддержки шифрования файлов при установке QuickStart Pack 5.2.3 выбери 'Download and install encryption support'.

Цитата:
инсталлер все равно разбирается...

Параметры Encryption=true и Password=Ваш пароль защищают только файлы, на скрипт и код это не влияет.
Автор: Kutsenko
Дата сообщения: 10.05.2008 14:39
А можна както защитить инсталятор так чтобы унпакер даже его открыть немог??? У меня рас такое было, непонятно даже почему, я скрипт никак не защищал, а унпакер не мог открыть инсталятор и писал ошибку, + инстал нормально работал.
Автор: Diawer
Дата сообщения: 10.05.2008 14:49
Помогите слить две CurUninstallStepChanged в [more=коде][Код]
function KillTaskA(ExeFileName: string): Integer;
external 'KillTask@{app}\Unload.dll stdcall delayload uninstallonly';

function RunTaskA(FileName: string; bFullpath: Boolean): Boolean;
external 'RunTask@{app}\Unload.dll stdcall delayload uninstallonly';

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep = usUninstall then
begin
UnloadDLL(ExpandConstant('{app}\key_mouse_hook.dll'));
UnloadDLL(ExpandConstant('{app}\lwdb.dll'));
UnloadDLL(ExpandConstant('{app}\Unload.dll'));
UnloadDLL(ExpandConstant('{app}\WordExtract.dll'));
UnloadDLL(ExpandConstant('{app}\WordExtract_add.dll'));
end;
end;

procedure InitializeUninstallProgressForm();
begin
if RunTaskA('Translateit.exe', false) then
KillTaskA('Translateit.exe')
else
Exit;
end;

const
MB_ICONINFORMATION = $40;
MB_ICONEXCLAMATION = $30;
MB_ICONQUESTION = $20;
MB_ICONSTOP = $10;
MB_ICONNONE = $0;

function MessageBox(hWnd: Integer; lpText, lpCaption: String; uType: Cardinal): Integer;
external 'MessageBoxA@user32.dll stdcall';

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if (CurUninstallStep=usPostUninstall) and DirExists(ExpandConstant('{userappdata}\TranslateIt6.5')) then
if MessageBox(0, ExpandConstant ('{cm:Text1}'),
ExpandConstant ('{cm:Text2}'), MB_ICONINFORMATION or mb_YesNo) = IDYES then
begin
DelTree(ExpandConstant('{userappdata}\TranslateIt6.5'), True, True, True);
end;
end;

procedure InitializeWizard();
var
TextLabel : TNewStaticText;
begin
TextLabel := TNewStaticText.Create(WizardForm);
TextLabel.Left := ScaleX(3);
TextLabel.Top := ScaleY(345);
TextLabel.Caption := 'by Neyman';
TextLabel.Parent := WizardForm;
TextLabel.Enabled := False;
end; [/more]
Автор: firefly2005
Дата сообщения: 10.05.2008 23:26
Diawer там код у тебя не весь,поэтому не смог проверить.
Я не программист, методом научного тыка выявил что 2 процедуры CurPageChanged можно объединить в одну (при ошибке duplicate identificer) - там содержимое второй ( и третьей и тд) устанавливается если без объявления процедуры её в первую записать)
вот пример с моими двумя CurPageChanged:


Цитата:
procedure CurPageChanged(CurPageID: Integer);

begin
.............// код от первой CurPageChanged- процедуры

begin
...............// добавка от второго CurPageChanged, но без объявления процедуры

end
end;


PS: у тебя наверное, по аналогии, также можно. Только не забывай соответствующее количество -end- прописывать. Потом саму эту комбинированную процедуру нужно в конце устанавливать ( на место 2-ой или другой последней процедуры).


Добавлено:
Kutsenko
Как вариант, могу предложить ссылку на вариант защиты от Genri (сам я не пробовал, просто взял на заметку) http://forum.ru-board.com/topic.cgi?forum=5&topic=4801&start=1184
там сообщение 1184 от <<Автор: Genri, Отправлено:23:22 08-01-2007>>

Добавлено:
MogilShik2007

Цитата:
Чёт сделал как писалось выше со скином корона, а толку ноль, инсталлер собирается при,запуске выдаёт ошибку ,чёт типа CancelHint... error вроде е32

я посмотрел CancelHint- упоминается только в Corona_kernel.Iss только в строке 1174-1175 (однократно). Как я понял это реализация всплывающей подсказки к кнопке Cancel.
Поэтому предположу, что ты при подгонке под "себя" этот скрипт не/случайно изменил.
Если не чего не менял, то попробуй выключить эти строки, закомментировав их.

Цитата:
Как нормально зашифровать инсталлер? Пробовал по руководству которое в шапке, инсталлер всеравно разбирается...

я давал как вариант, ссылку http://forum.ru-board.com/topic.cgi?forum=5&topic=4801&start=1184 если разберешься.

Цитата:
И какое значение нужно прописать чтоб галочки автоматом выставлялись?..

в какой [Секции]? они вроде везде автоматом устанавливаются, при установке соответсвующих флагов. Мне например, чаще приходится их наоборот снимать (флаг unchecked).
Или например, если тебе надо установить выбор, например на странице лицензии, чтобы галочка автоматом стояла на "Принять" (по умолчанию в визарде она, "Не принимать")
то нужно в код добавить следующее:

Цитата:
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID=wpLicense then
begin
WizardForm.LicenseAcceptedRadio.Checked:=True
end;
Автор: EagleSH
Дата сообщения: 11.05.2008 13:07
Decompression (dictionary size) Compression
fast (worst) 32 KB 3 MB
normal 2 MB 26 MB
max (default) 8 MB 95 MB
ultra 32 MB 372 MB
ultra64 (best) 64 MB 676 MB

господа, можно увеличить dictionary size какимто образом? хотябы до 256 ну лили в моём случае 384 былобы круто.
Автор: alfonser
Дата сообщения: 11.05.2008 14:42
Подскажите, пожалуйста!
Мне необходимо, чтобы во время инсталляции происходила установка файлов, находящихся
не в упакованном инсталляторе, а из другой папки.

Код:
[Run]
Filename: {src}\DirectX\DXSETUP.exe
Автор: firefly2005
Дата сообщения: 12.05.2008 04:31
alfonser
ага, только в секцию "файлов" укажи тоже и флаг экстернал (ака внешний) добавить
[Files]
Source: {src}\DirectX\DXSETUP.exe; ....... Flags: external

PS: Есть авторан от Киндли, я здесь на форуме ссылку нашел. Там есть и директХ установка.
Посмотри может подойдет, тогда и винсталлятор Инно не надо будет с ДиректомХ заморачиваться.
http://download.ware.ru/win/10996_AFGL.rar
Автор: AlexDJ666
Дата сообщения: 12.05.2008 07:55
И снова здравствуйте, гуру инсталляторов)

Спасибо тем, кто выложил скрипты с выводом скриншотов к компонентам

Сейчас вот пытаюсь разобраться как изменить оформление Panel, а вернее, бордюра. Есть панель, в которой описывается компонент и мне бы хотелось сделать бордюр другого цвета и другой толщины. Какими переменными можно это задать?
Вот код панели:

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

Panel :=TPanel.Create(Page)
Panel.Left :=230
Panel.Top :=0
Panel.Width :=290
Panel.Height :=305
Panel.border :=1
Panel.BevelInner :=bvLowered
Panel.Parent :=Page.Surface


Text4 :=TNewStaticText.Create(Page)
Text4.Left :=15
Text4.Top :=15
Text4.Width :=260
Text4.Height :=275
Text4.AutoSize :=False
Text4.WordWrap :=True
Text4.Parent :=Panel
Автор: alfonser
Дата сообщения: 12.05.2008 11:37
firefly2005
Спасибо!
Что-то по ссылке страница абракадабры . Или у меня IE глючит?
Автор: AlexDJ666
Дата сообщения: 12.05.2008 11:37
И еще пара вопросов.

1. На новой странице создаю ListBox, в котором CheckBox и Label. И почему-то текст обрезается в листбоксе. Ставлю "Label.Autosize:=True", но это не помогает. Как можно исправить?

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

Ниже вкладываю код:

[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();
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;
Автор: alfonser
Дата сообщения: 12.05.2008 12:23
AlexDJ666

Цитата:
Правой клавишей на ссылку -> "Сохранить как..."

Спасибо, помогло!
Подскажи, пожалуйста, почему у меня не получается ввести комментарии в скрипте?Начинаю строку с ; но цвет строки не меняется, и ошибка при сборке,т.е. считывается как команда?

Код: [Code]
; Новый скин
Procedure InitializeWizard();
begin
with WizardForm do begin
Position:=poScreenCenter
Автор: EagleSH
Дата сообщения: 12.05.2008 13:13
alfonser
в секции коде нужно коментить
{БЛАБЛАБЛА}
Автор: alfonser
Дата сообщения: 12.05.2008 14:20
EagleSH
Теперь нормально!
Только не пойму почему в скрипте эта строка в скобках?
Во всех скриптах которые я использую как шаблоны, коменты именно через ;
Из справки:

Цитата:
В скрипт можно добавить комментарий, который будет игнорирован при компиляции. Для этого в начале строки ставится точка с запятой (";"):

; Это комментарий


Автор: Victor_Dobrov
Дата сообщения: 12.05.2008 14:38
Corona Skin & Check System Requirements (380 Кб) - расширение инсталлятора Inno Setup.

Небольшие дополнения:
Серийник может быть с дефисами, тогда поле ввода разделится на группы, например в строке 123-45-6789 их будет 3.
Можно указать свой размер шрифта для групп, для DefaultUserInfoSerial=123|16 размер шрифта 16, серийник 123.
Если UserSerial в реестре неправильный, то поле редактирования серийного номера очищается.
Зашифрованный пароль теперь не включается в код несколько раз.
Если [Setup]: AppVerName не указан, в скрипт пишется AppVerName = AppName+VersionInfoVersion.
В [Setup]: AppPublisher копируется значение ключа VersionInfoCopyright (если указано).
Если [Messages]: BeveledLabel не указан, копирайт берётся из [Setup]: AppPublisher или [CustomMessages]: Author.
По клику на копирайте открывается адрес, заданный в [Setup]: AppPublisherURL.
При сборке в файлы локализации скина записывается текущая дата (значит на CD-ROMе их держать нельзя).
При компиляции пароль и серийный номер можно увидеть в начале лога сборки.

P.S. Потестируйте скрипт и если будут ошибки, отпишите (и проверьте работу серийника с дефисами).
Автор: EagleSH
Дата сообщения: 12.05.2008 15:09
alfonser

Цитата:
В скрипт можно добавить комментарий, который будет игнорирован при компиляции. Для этого в начале строки ставится точка с запятой (";"):

; Это комментарий

ключевое слово скрипт, а не коде
Автор: alfonser
Дата сообщения: 12.05.2008 16:34
EagleSH
Дошло..
Еще вопрос!
Возможно ли такое:
Для того, чтобы не перепаковывать игру, использовать такой вариант:
создать инсталлятор с 1)запуском файла установки игры, 2)после выполнения этого действия запуск др.файлов(crack,rus. и т.д)
Какие могут быть проблемы при установки?Увеличит ли это время установки самой игры?
Автор: EagleSH
Дата сообщения: 12.05.2008 17:16
alfonser
ну я такое делал, ток писал свой обработчик (если инношние инсталлы, то работать будет)
с инсталшилдом например у меня не прокатило, он типа модульный...

а мой обработчик делал запуск инсталла с ключём /verysilent
потом доставлял шо мне нужно было (но это я эксперементировал) - обычно перепаковываю.
Автор: alfonser
Дата сообщения: 12.05.2008 18:11
EagleSH
Спасибо!
Подскажи где отключить сообщение, что "...такая папка существует.Все равно продолжить?"
Вопрос снимается,разобрался.
Автор: firefly2005
Дата сообщения: 12.05.2008 23:04
AlexDJ666 Я не гуру, но всё же попытаюсь ответить.

Цитата:
Сейчас вот пытаюсь разобраться как изменить оформление Panel, а вернее, бордюра. Есть панель, в которой описывается компонент и мне бы хотелось сделать бордюр другого цвета и другой толщины. Какими переменными можно это задать?


Цвет бордюра видимо привязан к цвету основной формы, т.е. я как заметил он меняется вместе с ним.
Могу посоветовать поиграться с комбинацией 2-х бордюров (внутр и внешнего)-bvNone, bvLowered, bvRaised,bvSpace и
стиля бордюров BorderStyle-bsSingle, bsNone, bsDialog, bsVertical, bsHorizontal, bsSizeable, bsToolWindow, bsSizeToolWin.

вот примерно в такой комбинации
Panel.BevelInner := bvLowered;
Panel.BevelOuter:= bvRaised;
Panel.BorderStyle := bsSingle;

PS: по цвету, особенный Color писать в форме $000000
Я подбор цвета фона и шрифтов делаю пользуясь http://designa.pisem.net
а переводом цвета в код программой http://www.nattyware.com/pixie.html
там навести курсором и он покажет, например, HEX 0xFAFFC6- вот и надо писать
Text.Font.Color := $FAFFC6;


Цитата:
1. На новой странице создаю ListBox, в котором CheckBox и Label. И почему-то текст обрезается в листбоксе. Ставлю "Label.Autosize:=True", но это не помогает. Как можно исправить?
У меня при подобных срабатывает
Text.AutoSize := False
Text.WordWrap := True

может быть у тебя проблема в том что ширина большая, уходит за границы формы- Width?
Если не получается, то принудительно перенеси сам. Вроде вот так:
Text.Caption := 'В игре отсутствует- фоновая музыка и возможность прохождения '+ #10#13 + 'стандартных кампаний. Присутствует русская озвучка ';
#10#13 здесь перейти на след строку,
#10#13#10 через одну строку, соединяется через + (знак плюс), содержание берется в одинарные кавыки


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

Так это, я так понимаю под твои новые странички, надо по другому. Я так понял, вызывая секцию [components] ты вызываешь мастер-WizardForm-wpSelectComponents. Потому и получается всё отдельно. Ты исключи (удали) совсем эту секцию.
Посмотри примеры в Program Files\Inno Setup 5\Examples CodeClasses.iss и CodeDlg.iss.
А привязку к свой форме делай, например, через подобное (у меня работает)

Цитата:
[Files]
Source: C:\NoMusic\*; DestDir: {app}; Check: NoMusic; Flags: ignoreversion overwritereadonly external
[Code]
procedure CreateTheWizardPages;
var Page: TWizardPage;
begin
Page:=CreateCustomPage(wpWelcome, 'Выберите вариант установки ', ' Компакт-диск не требуется';
NoMusicBtn:=TRadioButton.Create(Page);
..................
NoMusicBtn.Checked:=GetPreviousData('NoMusic', '1') = '1';
...................
end;

procedure RegisterPreviousData(PreviousDataKey: Integer);
begin
SetPreviousData(PreviousDataKey, 'NoMusic', IntToStr(Ord(NoMusicBtn.Checked)));
........................
end;

function NoMusic: Boolean;
begin
Result:=NoMusicBtn.Checked;
end;
......


Автор: Sampron
Дата сообщения: 12.05.2008 23:19
AlexDJ666

Цитата:
1. На новой странице создаю ListBox, в котором CheckBox и Label. И почему-то текст обрезается в листбоксе. Ставлю "Label.Autosize:=True", но это не помогает. Как можно исправить?

Скорей всего тебе нужно увеличивать размеры чекбоксов, потому-что у твоих Label-ов парент указывает на чекбоксы, тоесть лейблы находятся внутри чекбоксов.

Автор: Genri
Дата сообщения: 12.05.2008 23:40
Sampron
AlexDJ666
Возможно, проблема в том, что AutoSize выставляется после установки свойств Caption и WordWrap.
hint! AutoSize должно стоять перед установкой свойств Caption и WordWrap
Автор: alfonser
Дата сообщения: 13.05.2008 00:00
Подскажите, пожалуйста, что это за путь установки?

Код: DefaultDirName={code:GetAppPath}
Автор: Sampron
Дата сообщения: 13.05.2008 00:15
alfonser
Это обращение к функции в секции code, пример:

function GetAppPath(Param: String): String;
begin
Result := ExpandConstant('{pf}');
end;

Добавлено:
Genri
Дело в том что у него AutoSize выставлено перед Caption и WordWrap и говорит что не помогает, хотя х.з. это нужно проверять.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

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


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