Войти

Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 6]


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [20] 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

saurn
07-05-2013, 21:23
neorom
[Setup]
AppName=IDM 6.15 Build 10 Final
AppVerName=Internet Download Manager
DefaultDirName={pf}\Internet Download Manager
DisableReadyPage=true
MergeDuplicateFiles=false
SolidCompression=false
Compression=lzma/ultra64
UseSetupLdr=true
AppID=Internet Download Manager
DefaultGroupName=Internet Download Manager
WizardImageFile=modern-wizard.bmp
WizardSmallImageFile=modern-header.bmp

[Languages]
Name: Ukrainian; MessagesFile: compiler:Languages\Ukrainian.isl

[Files]
Source: 01.bmp; Flags: dontcopy solidbreak
Source: 02.bmp; Flags: dontcopy solidbreak
Source: instaler\*.*; DestDir: {app}; Check: installer
Source: portable\*.*; DestDir: {app}; Check: portable

[Code]
var
ISCustomPage1: TWizardPage;
BitmapImage1: TBitmapImage;
NewGroupBox1: TNewGroupBox;
NewRadioButton1: TNewRadioButton;
NewRadioButton2: TNewRadioButton;
NewGroupBox2: TNewGroupBox;
NewCheckBox1: TNewCheckBox;
NewCheckBox2: TNewCheckBox;
NewCheckBox3: TNewCheckBox;
NewCheckBox4: TNewCheckBox;
MouseLabel,SiteLabel: TLabel;
ErrorCode: Integer;

function InitializeSetup(): Boolean;
begin
if not FileExists(ExpandConstant('{tmp}\01.bmp')) then ExtractTemporaryFile('01.bmp');
if not FileExists(ExpandConstant('{tmp}\02.bmp')) then ExtractTemporaryFile('02.bmp');
Result := True;
end;

function installer: Boolean;
begin
Result := NewRadioButton1.Checked;
end;

function portable: Boolean;
begin
Result := NewRadioButton2.Checked;
end;

function Icons1: Boolean;
begin
Result:= NewCheckBox1.Checked;
end;

function Icons2: Boolean;
begin
Result:= NewCheckBox2.Checked;
end;

function Icons3: Boolean;
begin
Result:= NewCheckBox3.Checked;
end;

function Icons4: Boolean;
begin
Result:= NewCheckBox4.Checked;
end;

procedure SiteLabelOnClick(Sender: TObject);
begin
ShellExec('open','http://toloka.hurtom.com','', '', SW_SHOW, ewNoWait, ErrorCode);
end;

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

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

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

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

procedure NewRadioButtonClick(Sender: TObject);
begin
case TNewRadioButton(Sender) of
NewRadioButton1:
begin
NewCheckBox1.Checked:= NewRadioButton1.Checked;
NewCheckBox2.Checked:= NewRadioButton1.Checked;
NewCheckBox3.Checked:= NewRadioButton1.Checked;
NewCheckBox4.Checked:= NewRadioButton1.Checked;
NewCheckBox1.Enabled:= NewRadioButton1.Checked;
NewCheckBox2.Enabled:= NewRadioButton1.Checked;
NewCheckBox3.Enabled:= NewRadioButton1.Checked;
NewCheckBox4.Enabled:= NewRadioButton1.Checked;
BitmapImage1.Bitmap.LoadFromFile(ExpandConstant('{tmp}\01.bmp'));
end;
NewRadioButton2:
begin
NewCheckBox1.Enabled:= NewRadioButton1.Checked;
NewCheckBox2.Enabled:= NewRadioButton1.Checked;
NewCheckBox3.Enabled:= NewRadioButton1.Checked;
NewCheckBox4.Enabled:= NewRadioButton1.Checked;
NewCheckBox1.Checked:= NewRadioButton1.Checked;
NewCheckBox2.Checked:= NewRadioButton1.Checked;
NewCheckBox3.Checked:= NewRadioButton1.Checked;
NewCheckBox4.Checked:= NewRadioButton1.Checked;
BitmapImage1.Bitmap.LoadFromFile(ExpandConstant('{tmp}\02.bmp'));
end;
end;
end;

procedure NewCheckBox1Click(Sender: TObject); forward;
procedure NewCheckBox2Click(Sender: TObject); forward;
procedure NewCheckBox3Click(Sender: TObject); forward;
procedure NewCheckBox4Click(Sender: TObject); forward;
procedure PageNameLabelClick(Sender: TObject); forward;

procedure RedesignWizardForm;
begin
ISCustomPage1 := CreateCustomPage(wpSelectComponents, 'Вибір типа компонентів встановлення', ' ...');
with ISCustomPage1.Surface do
begin
Name := 'ISCustomPage1';
end;

BitmapImage1 := TBitmapImage.Create(WizardForm);
with BitmapImage1 do
begin
Name := 'BitmapImage1';
Parent := ISCustomPage1.Surface;
Left := ScaleX(232);
Top := ScaleY(32);
Width := ScaleX(180);
Height := ScaleY(180);
end;

NewGroupBox1 := TNewGroupBox.Create(WizardForm);
with NewGroupBox1 do
begin
Name := 'NewGroupBox1';
Parent := ISCustomPage1.Surface;
Left := ScaleX(8);
Top := ScaleY(8);
Width := ScaleX(209);
Height := ScaleY(65);
Caption := 'Мова інтерфейсу за умовчанням';
end;

NewRadioButton1 := TNewRadioButton.Create(WizardForm);
with NewRadioButton1 do
begin
Name := 'NewRadioButton1';
Parent := NewGroupBox1;
Left := ScaleX(8);
Top := ScaleY(16);
Width := ScaleX(196);
Height := ScaleY(17);
Checked := True;
Caption := 'Встановлення звичайної версії';
OnClick := @NewRadioButtonClick;
end;

NewRadioButton2 := TNewRadioButton.Create(WizardForm);
with NewRadioButton2 do
begin
Name := 'NewRadioButton2';
Parent := NewGroupBox1;
Left := ScaleX(8);
Top := ScaleY(40);
Width := ScaleX(196);
Height := ScaleY(17);
Caption := 'Розпакування портативної версії';
OnClick := @NewRadioButtonClick;
end;

NewGroupBox2 := TNewGroupBox.Create(WizardForm);
with NewGroupBox2 do
begin
Name := 'NewGroupBox2';
Parent := ISCustomPage1.Surface;
Left := ScaleX(8);
Top := ScaleY(112);
Width := ScaleX(209);
Height := ScaleY(113);
Caption := 'Додатково';
end;

NewCheckBox1 := TNewCheckBox.Create(WizardForm);
with NewCheckBox1 do
begin
Name := 'NewCheckBox1';
Parent := NewGroupBox2;
Left := ScaleX(8);
Top := ScaleY(16);
Width := ScaleX(196);
Height := ScaleY(17);
Checked := True
Caption := 'Закріпити в панелі задач';
OnClick := @NewCheckBox1Click;
end;

NewCheckBox2 := TNewCheckBox.Create(WizardForm);
with NewCheckBox2 do
begin
Name := 'NewCheckBox2';
Parent := NewGroupBox2;
Left := ScaleX(8);
Top := ScaleY(40);
Width := ScaleX(196);
Height := ScaleY(17);
Checked := True
Caption := 'Закріпити в меню ПУСК';
OnClick := @NewCheckBox2Click;
end;

NewCheckBox3 := TNewCheckBox.Create(WizardForm);
with NewCheckBox3 do
begin
Name := 'NewCheckBox3';
Parent := NewGroupBox2;
Left := ScaleX(8);
Top := ScaleY(64);
Width := ScaleX(196);
Height := ScaleY(17);
Checked := True
Caption := 'Ярлик(и) на робочому столі';
OnClick := @NewCheckBox3Click;
end;

NewCheckBox4 := TNewCheckBox.Create(WizardForm);
with NewCheckBox4 do
begin
Name := 'NewCheckBox4';
Parent := NewGroupBox2;
Left := ScaleX(8);
Top := ScaleY(88);
Width := ScaleX(196);
Height := ScaleY(17);
Checked := True
Caption := 'Ярлики в меню ПУСК';
OnClick := @NewCheckBox4Click;
end;

with WizardForm.WizardSmallBitmapImage do
begin
Left := ScaleX(0);
Width := ScaleX(150);
end;

with WizardForm.PageDescriptionLabel do
begin
Left := ScaleX(200);
Top := ScaleY(27);
Width := ScaleX(293);
end;

with WizardForm.PageNameLabel do
begin
OnClick := @PageNameLabelClick;
Left := ScaleX(200);
Width := ScaleX(269);
end;

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 := 10;
SiteLabel.Top := 330;
SiteLabel.Cursor := crHand;
SiteLabel.Font.Color := clBlue;
SiteLabel.Caption := 'RePack by neorom';
SiteLabel.Font.Style := [fsBold];
SiteLabel.OnClick := @SiteLabelOnClick;
SiteLabel.OnMouseDown := @SiteLabelMouseDown;
SiteLabel.OnMouseUp := @SiteLabelMouseUp;
SiteLabel.OnMouseMove := @SiteLabelMouseMove;
SiteLabel.Parent := WizardForm
end;

procedure PageNameLabelClick(Sender: TObject);
begin

end;


procedure NewCheckBox1Click(Sender: TObject);
begin

end;

procedure NewCheckBox2Click(Sender: TObject);
begin

end;

procedure NewCheckBox3Click(Sender: TObject);
begin

end;

procedure NewCheckBox4Click(Sender: TObject);
begin

end;

procedure InitializeWizard();
begin
RedesignWizardForm;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
case CurPageID of
ISCustomPage1.ID: if NewRadioButton1.Checked then BitmapImage1.Bitmap.LoadFromFile(ExpandConstant('{tmp}\01.bmp'));
end;
end;

neorom
07-05-2013, 21:39
Нет меня интересуєт именно тот скрипт из попереднього моєго сообшчения.
Сообшчения - P.S. Мне писали чтоби я сматрел у сборнике вопросов и ответов FAQ Ru-Board.chm, и я нашол много скриптов коториэ не роботают так как написано в описаниэ. (Я использую две версии розширениє версии компилятора остальной версии (ANSI i UNICODE ))И один скриптов. (Скрипт єтот не меняєт цвет и не єсть текст подчеркнутим при навидения мишки на него). Описаниэ - Как на BeveledLabel "повесить" ссылку, чтобы текст по умолчанию не был подчеркнут, а при наведении на текст, он подчеркивался и конечно, хотелось бы, менять цвет шрифта!
[Setup]
AppName=AppName
AppVerName=AppVerName
DefaultDirName={pf}\My Program

[Messages]
BeveledLabel= Copyright 2007 © Microsoft

[_Code]
procedure BevelLabelClick(Sender: TObject);
var ErrorCode: Integer;
begin
ShellExec('open','http://www.innosetup.com','', '', SW_SHOW, ewNoWait, ErrorCode)
end;

procedure InitializeWizard();
begin
with WizardForm do begin
with BeveledLabel do begin
OnClick:=@BevelLabelClick;
Font.Color:=clBlue;
Enabled:=True;
Cursor:=crHand;
end;
end;
end;

saurn
07-05-2013, 22:37
neorom, в этом примере нет ни строчки про изменение цвета и подчеркивание при наведении, потому и не работает. Обновил пример в предыдущем посте.

neorom
07-05-2013, 22:51
в этом примере нет ни строчки про изменение цвета и подчеркивание при наведении, потому и не работает. »
Как нету, про изменение цвета и подчеркивание при наведении, смотри фото http://s3.share.te.ua/501811/987.JPG (http://s3.share.te.ua/b501811/987.JPG)

saurn
07-05-2013, 22:59
neorom, подчеркивание будет выглядеть так:
BeveledLabel.Font.Style := [fsUnderline]
Изменение текста(цвет, подчеркивание, стиль, шрифт и т.д.) в реальном времени, то есть при наведении курсора мыши осуществляется через Sender: TObject

procedure LabelMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color := clGreen; //изменение цвета
SiteLabel.Font.Style := [fsBold, fsUnderline]; //изменение стиля
end;

...
OnMouseDown := @...;
OnMouseUp := @...;
OnMouseMove := @...;
Вы видите, что либо подобное в скрипте? Вот. Я знаю этот пример, и там только обработка клика на BeveledLabel. Мой пост с примером скрипта я обновил здесь (http://forum.oszone.net/post-2146194-381.html). Там нужное вам подчеркивание и изменение цвета.

neorom
07-05-2013, 23:23
Извините меня за назойливасть , тот скрипр длинний мне не надо не чего менять, я лиш прашу довести до пуття тот кароткий.

saurn
07-05-2013, 23:31
neorom, тот скрипт - это ваш скрипт, который был в архиве, с уже доведенными до ума короткими и длинными. Я просто объединил основной скрипт. Он готовый, берите и компилируйте. Хотите отдельно только кликабельный лейбл, могу дать отдельно, но будете объединять сами тогда.

neorom
07-05-2013, 23:45
Хотите отдельно только кликабельный лейбл, могу дать отдельно, но будете объединять сами тогда. »
Да, я прашу просто до делать скрипт так как там написано.
[Setup]
AppName=AppName
AppVerName=AppVerName
DefaultDirName={pf}\My Program

[Messages]
BeveledLabel= Copyright 2007 © Microsoft

[_Code]
procedure BevelLabelClick(Sender: TObject);
var ErrorCode: Integer;
begin
ShellExec('open','http://www.innosetup.com','', '', SW_SHOW, ewNoWait, ErrorCode)
end;

procedure InitializeWizard();
begin
with WizardForm do begin
with BeveledLabel do begin
OnClick:=@BevelLabelClick;
Font.Color:=clBlue;
Enabled:=True;
Cursor:=crHand;
end;
end;
end;

saurn
07-05-2013, 23:59
neorom
[Setup]
AppName=AppName
AppVerName=AppVerName
DefaultDirName={pf}\My Program

[Messages]
BeveledLabel=RePack by neorom

[Code]
var
mLabel: TLabel;
ErrorCode: Integer;

procedure BevelLabelClick(Sender: TObject);
begin
ShellExec('open', 'http://toloka.hurtom.com', '', '', SW_SHOW, ewNoWait, ErrorCode)
end;

procedure MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
WizardForm.BeveledLabel.Font.Color := clRed;
WizardForm.BeveledLabel.Font.Style := [fsBold, fsUnderline];
end;

procedure MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
WizardForm.BeveledLabel.Font.Color := clBlue;
WizardForm.BeveledLabel.Font.Style := [fsBold, fsUnderline];
end;

procedure MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
WizardForm.BeveledLabel.Font.Color := clGreen;
WizardForm.BeveledLabel.Font.Style := [fsBold, fsUnderline];
end;

procedure lMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
WizardForm.BeveledLabel.Font.Color := clBlue;
WizardForm.BeveledLabel.Font.Style := [fsBold];
end;

procedure InitializeWizard();
begin
with WizardForm do
begin
mLabel := TLabel.Create(nil)
mLabel.Width := WizardForm.Width;
mLabel.Height := WizardForm.Height;
mLabel.Autosize := False;
mLabel.Transparent := True;
mLabel.OnMouseMove := @lMouseMove;
mLabel.Parent := WizardForm;
with BeveledLabel do
begin
Font.Color := clBlue;
Font.Style := [fsBold];
Enabled := True;
Cursor := crHand;
OnClick := @BevelLabelClick;
OnMouseDown := @MouseDown;
OnMouseUp := @MouseUp;
OnMouseMove := @MouseMove;
end;
end;
end;

alert30
08-05-2013, 02:49
neorom, можете хоть правильно написать на русском языке?

GolD18
08-05-2013, 04:34
El Sanchez, А в коде ошибок нету? Правильно я сделал? И то есть просто 2 убрать надо? Спасибо.
Меняю на другой, например на Comic Sans MS. Все равно не меняется.

GolD18
08-05-2013, 07:18
saurn, Отправил вам в РМ.

neorom
08-05-2013, 07:40
можете хоть правильно написать на русском языке? »
Извините, как могу, так и пишу(русский язык не мой родной).

41275jur
08-05-2013, 16:31
Всем доброго времени суток!
Помогите со скриптом к программе DVD Rebuilder PRO 1.28.2
Сайт программы http://www.jdobbs.com/
Я хочу переписать скрипт, а именно убрать несколько языков, запуск установки кодека и запуск программы после установки и больше ничего изменять не надо. Скрипт должен максимально соответствовать оригиналу.
После распаковки инсталлятора попробовал собрать скр

98608

В секции [INI] начались первые проблемы. При сборке появилась ошибка

http://i47.fastpic.ru/thumb/2013/0508/a7/c953541777a2bb821baa337cd5b24fa7.jpeg (http://fastpic.ru/view/47/2013/0508/c953541777a2bb821baa337cd5b24fa7.png.html)

Убираю со скрипта запись Entry: QuEnc; - появляется вторая ошибка

http://i47.fastpic.ru/thumb/2013/0508/31/cf5637d47656e47513301eed562a0631.jpeg (http://fastpic.ru/view/47/2013/0508/cf5637d47656e47513301eed562a0631.png.html)

Подскажите что это за переменные Entry: и Value: и чем их можно заменить.
Следующие ошибки в секции [Registry]
Root: HKLM; Subkey: "Software\DVD Rebuilder"; ValueName: "Working_Path"; ValueType: String; ValueData: "{code:settingsdir|workdir}"; Flags: uninsdeletevalue uninsdeletekeyifempty
Root: HKLM; Subkey: "Software\DVD Rebuilder"; ValueName: "Output_Path"; ValueType: String; ValueData: "{code:settingsdir|finishdir}"; Flags: uninsdeletevalue uninsdeletekeyifempty


Появляется ошибка

http://i47.fastpic.ru/thumb/2013/0508/00/1ce8b6ee7f174270264a4205149e6f00.jpeg (http://fastpic.ru/view/47/2013/0508/1ce8b6ee7f174270264a4205149e6f00.png.html)

{code:settingsdir|workdir} - что оно обозначает. В реестре оригинальный инсталлятор прописывает ключ
[HKEY_LOCAL_MACHINE\SOFTWARE\DVD Rebuilder]
"Working_Path"="D:\\"
"Output_Path"="D:\\"


После распаковки есть две папки, в которых находятся файлы info.txt. При сборке выскакивает ошибка аналогичная ошибке в секции [Registry]
Source: "{code_settingsdir_workdir}\info.txt"; DestDir: "{code:settingsdir|workdir}"; Flags: uninsneveruninstall
Source: "{code_settingsdir_finishdir}\info.txt"; DestDir: "{code:settingsdir|finishdir}"; Flags: uninsneveruninstall


http://i46.fastpic.ru/thumb/2013/0508/c3/6719e41f41012fbd1b5362bbefc307c3.jpeg (http://fastpic.ru/view/46/2013/0508/6719e41f41012fbd1b5362bbefc307c3.png.html)

Mailchik
08-05-2013, 17:20
Убираю со скрипта запись Entry: QuEnc; - появляется вторая ошибка »
Потому, что в Инно нет Entry и Value для секции INI. Вместо них Key и String соответственно.
Следующие ошибки в секции [Registry] »
Компилятор сообщает вам, что не может найти функцию settingsdir, которую вы использовали для ValueData. Если вам нужна папка, выбранная пользователем хватит константы {app}.
После распаковки есть две папки, в которых находятся файлы info.txt. При сборке выскакивает ошибка аналогичная ошибке в секции [Registry] »
То же самое.

El Sanchez
08-05-2013, 20:43
Меняю на другой, например на Comic Sans MS. Все равно не меняется. »
GolD18, у вас в том куске кода, что вы выложили, стандартные элементы управления скрыты, вместо них созданы свои с принудительным заданием шрифта Tahoma. Скрипт из шапки вы скопировали верно, даже пример использования применили (WizardForm.Font.Name := '{#FontName}';), значит, как максимум, при скрытом OuterNotebook от станлартных элементов должны остаться только кнопки Back, Next, Cancel с измененным шрифтом, но вы не видите, т.к. и кнопки вы оттекстуриваете botva2.dll. Что библиотека делает со шрифтом и откуда берет при отрисовке кнопки мне неизвестно. Для начала замените все Font.Name:='Tahoma'; на Font.Name:='{#FontName}';

41275jur
08-05-2013, 21:07
Спасибо за разъяснение и помощь
Компилятор сообщает вам, что не может найти функцию settingsdir, которую вы использовали для ValueData. Если вам нужна папка, выбранная пользователем хватит константы {app}. »
Только мне нужна определенная папка по умолчанию как в оригинальном инсталляторе
http://i46.fastpic.ru/thumb/2013/0508/03/9336722346785ce04ce881f759b26803.jpeg (http://fastpic.ru/view/46/2013/0508/9336722346785ce04ce881f759b26803.png.html)
Инсталлятор упаковал, но окна такого нет.
Подскажи пожалуйста где можно про это прочитать.
И про второе окно
Оригинал
http://i48.fastpic.ru/thumb/2013/0508/3e/f92bb61ccae8ef1e38ffa17caa076b3e.jpeg (http://fastpic.ru/view/48/2013/0508/f92bb61ccae8ef1e38ffa17caa076b3e.png.html)
Мой
http://i47.fastpic.ru/thumb/2013/0508/2a/74ac38726262b229dcb16f3f0ae41d2a.jpeg (http://fastpic.ru/view/47/2013/0508/74ac38726262b229dcb16f3f0ae41d2a.png.html)

saurn
08-05-2013, 22:26
El Sanchez, вертел я его скрипт по всякому, Font.Name:='{#FontName}', ничего не меняет, шрифт удалось изменить только на кнопках. Возможно, я что-то не понял.
---------------------------------
41275jur, страничка с двумя эдитами - кастомная страница, создавать нужно в секции [Code], в шапке есть пример по созданию кастомного диалогового окна. По странице с компонентами: чтобы отображался список компонентов, а не просто выбор типов установки, добавьте в [Types] флаг ; Flags: iscustom Например:
[Types]
Name: "custom"; Description: "{cm:custominstall}"; Flags: iscustom

insombia
08-05-2013, 22:52
GolD18 а так пойдет?
#define Font "Zombie.ttf"
#define FontName "DS Zombie Cyr"

[Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program
OutputDir=.

[Languages]
Name: "rus"; MessagesFile: "compiler:Languages\Russian.isl"

[Files]
Source: {#Font}; Flags: dontcopy;

[Code]
var
IsCustomFontInstalled: boolean;
FontName: string;

function AddFontResource(FileName: PAnsiChar): Integer; external 'AddFontResourceA@gdi32.dll stdcall';
function RemoveFontResource(FileName: PAnsiChar): BOOL; external 'RemoveFontResourceA@gdi32.dll stdcall';

function InitializeSetup(): Boolean;
begin
ExtractTemporaryFile('{#Font}');
IsCustomFontInstalled:=AddFontResource(ExpandConst ant('{tmp}')+'\{#Font}')>0;
if IsCustomFontInstalled then SendMessage(HWND_BROADCAST,$1D,0,0);
if FontExists('{#FontName}') then FontName:='{#FontName}' else FontName:='Arial';
Result:= True;
end;

Procedure InitializeWizard();
begin
WizardForm.Font.Name:= FontName;
end;

procedure DeInitializeSetup();
begin
WizardForm.Free;
if IsCustomFontInstalled then
if RemoveFontResource(PAnsiChar(ExpandConstant('{tmp}')+'\{#Font}')) then SendMessage(HWND_BROADCAST,$1D,0,0);
end;

vint56
08-05-2013, 23:02
41275jur
[Types]
Name: "full"; Description: "Full installation (Recomended)";
Name: "update"; Description: "Update";
Name: "compact"; Description: "Compact installation";
Name: "custom"; Description: "Custom installation"; Flags: iscustom

[Components]
Name: "rebuilder"; Description: "Program Files"; Types: "full compact custom update"; Flags: fixed
Name: "rebuilder"; Description: "Info File"; Types: "full compact custom update"; Flags: fixed
Name: "conf"; Description: "Automatic configuration"; Types: "full";
Name: "conf\config"; Description: "Preconfigured Rebuilder.ini (QuEnc/Three Click mode)"; Types: "compact full";
Name: "conf\paths"; Description: "CCE/ProCoder - Definition (ONLY IF YOU HAVE ONE OF THEM!!!)"; Types: "full custom compact";
Name: "conf\dgdecode"; Description: "Decoder 1.4.5"; Types: "full custom compact"; Flags: fixed
Name: "help"; Description: "Help Files"; Types: "custom compact update full";
Name: "filters"; Description: "Filters"; Types: "full";
Name: "filters\decomb"; Description: "Decomb.dll"; Types: "full";
Name: "filters\nicaudio"; Description: "nicaudio.dll"; Types: "full";
Name: "filters\undot"; Description: "UnDot 0.0.1.1"; Types: "full";
Name: "filters\deen"; Description: "Deen 1.0 beta 1"; Types: "full";
Name: "encoders"; Description: "Encoders"; Types: "full";
Name: "encoders\eclpro"; Description: "EclPro v1.11 (needed for Canopus ProCoder)"; Types: "full update";
Name: "encoders\quenc"; Description: "QuEnc 0.72beta"; Types: "full";
Name: "encoders\hc"; Description: "HC beta 0.23"; Types: "full";
Name: "encoders\ffmpeg"; Description: "FFMPEG v51.9.0"; Types: "full";
Name: "encoders\cmdline"; Description: "CMDLINE"; Types: "full";
Name: "encoders\rejig"; Description: "ReJig v0.5f (Transcoder)"; Types: "full";




© OSzone.net 2001-2012