Хорошо Sampron! Спасибо!
» Inno Setup (создание инсталяционных пакетов)
Chanka
Исправил, лучше подключать стандартный компонент:
procedure CancelButtonClick(CurPage: Integer; var Cancel, Confirm: Boolean);
begin
Cancel:=True
if WizardForm.WelcomeLabel1.Visible = True then
Confirm:=True
else
Confirm:=False
end;
Исправил, лучше подключать стандартный компонент:
procedure CancelButtonClick(CurPage: Integer; var Cancel, Confirm: Boolean);
begin
Cancel:=True
if WizardForm.WelcomeLabel1.Visible = True then
Confirm:=True
else
Confirm:=False
end;
Sampron
Благодарю! Всё работает!
Добавлено:
Sampron
Назрел еще один вопросик.
Вот ставлю
WizardForm.BorderStyle := bsDialog; в InitializeWizard(); Чтобы убрать значки.
А как если Repair как всё вернуть?
Благодарю! Всё работает!
Добавлено:
Sampron
Назрел еще один вопросик.
Вот ставлю
WizardForm.BorderStyle := bsDialog; в InitializeWizard(); Чтобы убрать значки.
А как если Repair как всё вернуть?
Chanka
bsSingle
bsSingle
Sampron
Спасибо!
Спасибо!
Чёт мне никто не ответил
Еще раз:
Чёт сделал как писалось выше со скином корона, а толку ноль, инсталлер собирается при,запуске выдаёт ошибку ,чёт типа CancelHint... error вроде е32
Два вопроса:
Как нормально зашифровать инсталлер? Пробовал по руководству которое в шапке, инсталлер всеравно разбирается...
И какое значение нужно прописать чтоб галочки автоматом выставлялись?..
Еще раз:
Чёт сделал как писалось выше со скином корона, а толку ноль, инсталлер собирается при,запуске выдаёт ошибку ,чёт типа CancelHint... error вроде е32
Два вопроса:
Как нормально зашифровать инсталлер? Пробовал по руководству которое в шапке, инсталлер всеравно разбирается...
И какое значение нужно прописать чтоб галочки автоматом выставлялись?..
Как сделать чтоб файлы устанавливались только когда они хоть чемто отличаются от тех которые в инсталляторе? Ну т.е. файлы в инсталляторе и в папке назначения сверялись (хз по чему, к примеру по времени или лучше по CRC), одинаковые файлы не устанавливались, а те которые хоть чемто отличаются, перезаписывались.
MogilShik2007 - текущая версия Corona Skin собирается без ошибок. Подробности смотри в ReadMe.rtf.
Для поддержки шифрования файлов при установке QuickStart Pack 5.2.3 выбери 'Download and install encryption support'.
Цитата:
Параметры Encryption=true и Password=Ваш пароль защищают только файлы, на скрипт и код это не влияет.
Для поддержки шифрования файлов при установке QuickStart Pack 5.2.3 выбери 'Download and install encryption support'.
Цитата:
инсталлер все равно разбирается...
Параметры Encryption=true и Password=Ваш пароль защищают только файлы, на скрипт и код это не влияет.
А можна както защитить инсталятор так чтобы унпакер даже его открыть немог??? У меня рас такое было, непонятно даже почему, я скрипт никак не защищал, а унпакер не мог открыть инсталятор и писал ошибку, + инстал нормально работал.
Помогите слить две 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]
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]
Diawer там код у тебя не весь,поэтому не смог проверить.
Я не программист, методом научного тыка выявил что 2 процедуры CurPageChanged можно объединить в одну (при ошибке duplicate identificer) - там содержимое второй ( и третьей и тд) устанавливается если без объявления процедуры её в первую записать)
вот пример с моими двумя CurPageChanged:
Цитата:
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- упоминается только в Corona_kernel.Iss только в строке 1174-1175 (однократно). Как я понял это реализация всплывающей подсказки к кнопке Cancel.
Поэтому предположу, что ты при подгонке под "себя" этот скрипт не/случайно изменил.
Если не чего не менял, то попробуй выключить эти строки, закомментировав их.
Цитата:
я давал как вариант, ссылку http://forum.ru-board.com/topic.cgi?forum=5&topic=4801&start=1184 если разберешься.
Цитата:
в какой [Секции]? они вроде везде автоматом устанавливаются, при установке соответсвующих флагов. Мне например, чаще приходится их наоборот снимать (флаг unchecked).
Или например, если тебе надо установить выбор, например на странице лицензии, чтобы галочка автоматом стояла на "Принять" (по умолчанию в визарде она, "Не принимать")
то нужно в код добавить следующее:
Цитата:
Я не программист, методом научного тыка выявил что 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;
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 былобы круто.
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 былобы круто.
Подскажите, пожалуйста!
Мне необходимо, чтобы во время инсталляции происходила установка файлов, находящихся
не в упакованном инсталляторе, а из другой папки.
Код:
[Run]
Filename: {src}\DirectX\DXSETUP.exe
Мне необходимо, чтобы во время инсталляции происходила установка файлов, находящихся
не в упакованном инсталляторе, а из другой папки.
Код:
[Run]
Filename: {src}\DirectX\DXSETUP.exe
alfonser
ага, только в секцию "файлов" укажи тоже и флаг экстернал (ака внешний) добавить
[Files]
Source: {src}\DirectX\DXSETUP.exe; ....... Flags: external
PS: Есть авторан от Киндли, я здесь на форуме ссылку нашел. Там есть и директХ установка.
Посмотри может подойдет, тогда и винсталлятор Инно не надо будет с ДиректомХ заморачиваться.
http://download.ware.ru/win/10996_AFGL.rar
ага, только в секцию "файлов" укажи тоже и флаг экстернал (ака внешний) добавить
[Files]
Source: {src}\DirectX\DXSETUP.exe; ....... Flags: external
PS: Есть авторан от Киндли, я здесь на форуме ссылку нашел. Там есть и директХ установка.
Посмотри может подойдет, тогда и винсталлятор Инно не надо будет с ДиректомХ заморачиваться.
http://download.ware.ru/win/10996_AFGL.rar
И снова здравствуйте, гуру инсталляторов)
Спасибо тем, кто выложил скрипты с выводом скриншотов к компонентам
Сейчас вот пытаюсь разобраться как изменить оформление 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
Спасибо тем, кто выложил скрипты с выводом скриншотов к компонентам
Сейчас вот пытаюсь разобраться как изменить оформление 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
firefly2005
Спасибо!
Что-то по ссылке страница абракадабры . Или у меня IE глючит?
Спасибо!
Что-то по ссылке страница абракадабры . Или у меня IE глючит?
И еще пара вопросов.
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;
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;
AlexDJ666
Цитата:
Спасибо, помогло!
Подскажи, пожалуйста, почему у меня не получается ввести комментарии в скрипте?Начинаю строку с ; но цвет строки не меняется, и ошибка при сборке,т.е. считывается как команда?
Код: [Code]
; Новый скин
Procedure InitializeWizard();
begin
with WizardForm do begin
Position:=poScreenCenter
Цитата:
Правой клавишей на ссылку -> "Сохранить как..."
Спасибо, помогло!
Подскажи, пожалуйста, почему у меня не получается ввести комментарии в скрипте?Начинаю строку с ; но цвет строки не меняется, и ошибка при сборке,т.е. считывается как команда?
Код: [Code]
; Новый скин
Procedure InitializeWizard();
begin
with WizardForm do begin
Position:=poScreenCenter
alfonser
в секции коде нужно коментить
{БЛАБЛАБЛА}
в секции коде нужно коментить
{БЛАБЛАБЛА}
EagleSH
Теперь нормально!
Только не пойму почему в скрипте эта строка в скобках?
Во всех скриптах которые я использую как шаблоны, коменты именно через ;
Из справки:
Цитата:
Теперь нормально!
Только не пойму почему в скрипте эта строка в скобках?
Во всех скриптах которые я использую как шаблоны, коменты именно через ;
Из справки:
Цитата:
В скрипт можно добавить комментарий, который будет игнорирован при компиляции. Для этого в начале строки ставится точка с запятой (";"):
; Это комментарий
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. Потестируйте скрипт и если будут ошибки, отпишите (и проверьте работу серийника с дефисами).
Небольшие дополнения:
Серийник может быть с дефисами, тогда поле ввода разделится на группы, например в строке 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. Потестируйте скрипт и если будут ошибки, отпишите (и проверьте работу серийника с дефисами).
alfonser
Цитата:
ключевое слово скрипт, а не коде
Цитата:
В скрипт можно добавить комментарий, который будет игнорирован при компиляции. Для этого в начале строки ставится точка с запятой (";"):
; Это комментарий
ключевое слово скрипт, а не коде
EagleSH
Дошло..
Еще вопрос!
Возможно ли такое:
Для того, чтобы не перепаковывать игру, использовать такой вариант:
создать инсталлятор с 1)запуском файла установки игры, 2)после выполнения этого действия запуск др.файлов(crack,rus. и т.д)
Какие могут быть проблемы при установки?Увеличит ли это время установки самой игры?
Дошло..
Еще вопрос!
Возможно ли такое:
Для того, чтобы не перепаковывать игру, использовать такой вариант:
создать инсталлятор с 1)запуском файла установки игры, 2)после выполнения этого действия запуск др.файлов(crack,rus. и т.д)
Какие могут быть проблемы при установки?Увеличит ли это время установки самой игры?
alfonser
ну я такое делал, ток писал свой обработчик (если инношние инсталлы, то работать будет)
с инсталшилдом например у меня не прокатило, он типа модульный...
а мой обработчик делал запуск инсталла с ключём /verysilent
потом доставлял шо мне нужно было (но это я эксперементировал) - обычно перепаковываю.
ну я такое делал, ток писал свой обработчик (если инношние инсталлы, то работать будет)
с инсталшилдом например у меня не прокатило, он типа модульный...
а мой обработчик делал запуск инсталла с ключём /verysilent
потом доставлял шо мне нужно было (но это я эксперементировал) - обычно перепаковываю.
EagleSH
Спасибо!
Подскажи где отключить сообщение, что "...такая папка существует.Все равно продолжить?"
Вопрос снимается,разобрался.
Спасибо!
Подскажи где отключить сообщение, что "...такая папка существует.Все равно продолжить?"
Вопрос снимается,разобрался.
AlexDJ666 Я не гуру, но всё же попытаюсь ответить.
Цитата:
Цвет бордюра видимо привязан к цвету основной формы, т.е. я как заметил он меняется вместе с ним.
Могу посоветовать поиграться с комбинацией 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;
Цитата:
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.
А привязку к свой форме делай, например, через подобное (у меня работает)
Цитата:
Цитата:
Сейчас вот пытаюсь разобраться как изменить оформление 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;
......
AlexDJ666
Цитата:
Скорей всего тебе нужно увеличивать размеры чекбоксов, потому-что у твоих Label-ов парент указывает на чекбоксы, тоесть лейблы находятся внутри чекбоксов.
Цитата:
1. На новой странице создаю ListBox, в котором CheckBox и Label. И почему-то текст обрезается в листбоксе. Ставлю "Label.Autosize:=True", но это не помогает. Как можно исправить?
Скорей всего тебе нужно увеличивать размеры чекбоксов, потому-что у твоих Label-ов парент указывает на чекбоксы, тоесть лейблы находятся внутри чекбоксов.
Sampron
AlexDJ666
Возможно, проблема в том, что AutoSize выставляется после установки свойств Caption и WordWrap.
hint! AutoSize должно стоять перед установкой свойств Caption и WordWrap
AlexDJ666
Возможно, проблема в том, что AutoSize выставляется после установки свойств Caption и WordWrap.
hint! AutoSize должно стоять перед установкой свойств Caption и WordWrap
Подскажите, пожалуйста, что это за путь установки?
Код: DefaultDirName={code:GetAppPath}
Код: DefaultDirName={code:GetAppPath}
alfonser
Это обращение к функции в секции code, пример:
function GetAppPath(Param: String): String;
begin
Result := ExpandConstant('{pf}');
end;
Добавлено:
Genri
Дело в том что у него AutoSize выставлено перед Caption и WordWrap и говорит что не помогает, хотя х.з. это нужно проверять.
Это обращение к функции в секции 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, истории становления российского интернета. Сделано для людей.