Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 6]
Farser21
23-10-2013, 16:35
Nordek , спасибо огромное)
Веселый Вы человек... я тут на форуме людей мучил вопросами как сделать, чтобы компоненты (уже установленные) запоминались и реестр не страдал, а Вы мне предлагаете просто поставить "NO"... »
А один фиг, если всплывает такое окно, значит инсталл читает данные из реестра, как ты не упирайся. Одну запись в реестре он по любому (если конечно не прописано Uninstallable=no) создаёт. HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\имя проги или GUID_is1. Ну а так то да, я весёлый чел.
А один фиг »
Вот решение (http://forum.oszone.net/post-2239352-1332.html)
флаг disablenouninstallwarning
Я апну мой следующий вопрос (http://forum.oszone.net/post-2239493-1336.html), а то он уполз без ответа.
Вот решение
флаг disablenouninstallwarning »Это решение для одного компонента, а если компонентов сотня? К каждому приписывать этот флаг? Хотя, что я доказываю.
Это решение для одного компонента, а если компонентов сотня? К каждому приписывать этот флаг? Хотя, что я доказываю. »
1/ Вы частично правы... в Ваших словах есть логика... но есть ISTool, где можно выделить все компоненты и поставить галочку напротив нужного флажка... у меня более 70 компонентов.... потратил примерно минуту с учетом запуска ISTool и нажатия кнопки сохранить в конце...
2/ Ребят... я перефразирую свой насущный вопрос...
Есть ли правило, которое бы звучало так:
если
установка уже запускалась (или присутствует запись этого установщика в реестре)
то
не создавать TCheckBox
иначе
begin
RedesignWizardForm;
MyTask:=TCheckBox.Create(WizardForm);
with MyTask do
begin
Parent:=WizardForm.SelectDirPage;
Caption:='Я хочу создать резервную копию';
Left:=ScaleX(0);
Top:=ScaleY(180);
Width:=ScaleX(400);
Height:=ScaleY(15);
TabOrder:=0;
Checked:=False;
3/ Ребят, из-за чего может возникать такая ошибка?
Runtime Error:
Недопустимая строка с указанием класса, ProgID: "Scripting.FileSystemObject"
Mat_y, Можешь посмотреть в эту сторону:
[Components]
Name: A; Description: Компонент; Types: full; Check: skipcmp
[Code]
function skipcmp:boolean;
begin
Result:=True;
begin
If RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Inno Setup 5_is1') then
Result:=False
end;
end;
Можешь посмотреть в эту сторону »
Что-то я никак не соображу, как бы это применить к моему случаю :(
El Sanchez
24-10-2013, 17:35
Есть ли правило, которое бы звучало так: »
Mat_y, создать чекбокс, в свойстве Visible прописать:
Visible := not RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MyProgram_is1');
из-за чего может возникать такая ошибка? »
Mat_y, означает, что часть компонента WSH тю-тю из-за насильнических действий над системой. Объект FileSystemObject живет в scrrun.dll, ее и нужно перерегистрировать:
regsvr32 /u scrrun.dll
regsvr32 /s scrrun.dll
А размер файла можно получить не только с помощью объекта FileSystemObject, а и с помощью справки (http://jrsoftware.org/ishelp/topic_isxfunc_filesize.htm).
Mat_y, создать чекбокс, в свойстве Visible прописать: »
что-то не работает.... я правильно делаю:?
///////////////////Добавляем кнопки - Резервная копия////////////////////////////
begin
RedesignWizardForm;
MyTask:=TCheckBox.Create(WizardForm);
with MyTask do
begin
Parent:=WizardForm.SelectDirPage;
Caption:='Я хочу создать резервную копию';
Left:=ScaleX(0);
Top:=ScaleY(180);
Width:=ScaleX(400);
Height:=ScaleY(15);
TabOrder:=0;
Checked:=False;
Visible:= not RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#AppID}_is1');
///////////////////Добавляем кнопки - Резервная копия КОНЕЦ////////////////////////////
Если ставлю просто Visible:= true, то само собой все скрывается навсегда :)
Объект FileSystemObject живет в scrrun.dll, ее и нужно перерегистрировать »
Этот куда вписывать? Просто ошибка на чужом компьютере всплыла.
А размер файла можно получить не только с помощью объекта FileSystemObject, а и с помощью справки. »
Не, у меня это для проверки версии файла...
function FileVersion(const FilePath: String): String;
var
oFS: Variant;
begin
oFS:= CreateOleObject('Scripting.FileSystemObject');
try
Result:= oFS.GetFileVersion(FilePath);
except
end;
end;
El Sanchez
24-10-2013, 20:21
что-то не работает.... я правильно делаю:? »
Mat_y, {#AppID}_is1 с раскрытием константы этот раздел в реестре точно присутствует?
Этот куда вписывать? Просто ошибка на чужом компьютере всплыла. »
Mat_y, cmd.exe
Не, у меня это для проверки версии файла... »
Mat_y, тьфу, ты, ступил :). Тогда GetVersionNumbers (http://jrsoftware.org/ishelp/topic_isxfunc_getversionnumbers.htm), GetVersionNumbersString (http://jrsoftware.org/ishelp/topic_isxfunc_getversionnumbersstring.htm), Flags - comparetimestamp (http://jrsoftware.org/ishelp/topic_filessection.htm).
что-то не работает.... я правильно делаю:? »
#define AppID "{B7EB229F-2DFB-4612-AFC0-99773E1E14A8}"
[Setup]
AppId={{#AppID}
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputBaseFilename=setup
OutputDir=.
[Code]
var
MyButton: TNewButton;
procedure InitializeWizard();
begin
MyButton := TNewButton.Create(WizardForm);
with MyButton do
begin
Parent := WizardForm;
Left := ScaleX(40);
Top := ScaleY(328);
Width := ScaleX(75);
Height := ScaleY(25);
Visible := not RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#AppID}_is1');
Caption := 'Кнопка';
end;
end;
Скомпилируй
Запусти инсталлятор
Проведи установку
Ещё раз запусти инсталлятор.
Скрылась кнопочка?
Dinvin4ester
24-10-2013, 22:13
Ребята, помогите вставить музыку в инсталл - http://sendfile.su/886037.
А вот с этой - http://sendfile.su/886094 сделать музыку по умолчанию , а то при запуске и когда установка идет ее не выключить и разобраться - полная установка со всеми компонентами... , да и у меня не получается , выдает ошибку .
А это , то что мне подсказали ..
Компоненты
Код:
[Components]
Name: a; Description: AAA; Types: full
Name: a; Description: AAA
Здесь обрати внимание на ; Types: full, если нужно чтоб выбиралось то вставь ; Types: full.
full - это полная установка.
custom - это выборочная установка
compact - это компактная установка.
Задачи
Код:
[Tasks]
Name: a; Description: A
Name: a; Description: A; Flags: unchecked
Обрати внимание на Flags: unchecked если нужно чтоб выбиралось, то убери Flags: unchecked.
Скомпилируй
Запусти инсталлятор
Проведи установку
Ещё раз запусти инсталлятор.
Скрылась кнопочка? »
ага... спряталась...
А вот галочка в моем скрипте не хочет прятаться... в чем может быть дело?
ага... спряталась... »
А теперь аналогичным способом пробуй со своим примером:
#define AppID "{B7EB229F-2DFB-4612-AFC0-99773E1E14A8}"
[Setup]
AppId={{#AppID}
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputBaseFilename=setup
OutputDir=.
[Code]
var
MyTask: TNewCheckBox;
procedure InitializeWizard();
begin
MyTask := TNewCheckBox.Create(WizardForm);
with MyTask do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(180);
Width := ScaleX(400);
Height := ScaleY(15);
Caption:='Я хочу создать резервную копию';
TabOrder:=0;
Checked:=False;
Visible := not RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#AppID}_is1');
end;
end;
А теперь аналогичным способом пробуй со своим примером: »
Все... это первая стадия к безумию...
так все исчезает!
Но если добавляю это в свой код... не работает!
Видимо что-то, где-то не дает спрятаться :(
Как сделать так, чтобы при повторном запуске установщика, если уже была произведена установка ранее, эта секция не отображалась? »
#define AppID "{{B7EB229F-2DFB-4612-AFC0-99773E1E14A8}"
[Setup]
AppId={#AppID}
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputBaseFilename=setup
OutputDir=.
[Code]
var
MyTask: TCheckBox;
function My_Task(): Boolean;
begin
Result := RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + ExpandConstant('{#SetupSetting("AppID")}') + '_is1');
if not Result then
begin
MyTask := TCheckBox.Create(nil);
with MyTask do
begin
Parent := WizardForm.SelectDirPage;
SetBounds(ScaleX(0), ScaleY(180), ScaleX(400), ScaleY(15));
Caption := 'Я хочу создать резервную копию';
Checked := not Result;
end;
end;
end;
procedure InitializeWizard();
begin
My_Task();
end;
ну или покороче:
#define AppID "{{B7EB229F-2DFB-4612-AFC0-99773E1E14A8}"
[Setup]
AppId={#AppID}
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputBaseFilename=setup
OutputDir=.
[Code]
var
MyTask: TCheckBox;
procedure InitializeWizard();
begin
if not RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + ExpandConstant('{#SetupSetting("AppID")}') + '_is1') then
begin
MyTask := TCheckBox.Create(nil);
with MyTask do
begin
Parent := WizardForm.SelectDirPage;
SetBounds(ScaleX(0), ScaleY(180), ScaleX(400), ScaleY(15));
Caption := 'Я хочу создать резервную копию';
Checked := not RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + ExpandConstant('{#SetupSetting("AppID")}') + '_is1');
end;
end;
end;
Johny777
25-10-2013, 19:09
saurn, позволю себе сделать несколько замечаний касательно кода
1. я привык после написания кода просматривать его на наличие возможностей его оптимизации с точки зрения времени выполнения и экономии памяти
нет смысла гонять RegKeyExists 2 раза, в ней несколько WinApi функций - как мин имум 3 : отрыть, прочитать, закрыть,
нет смысла создавать кнопку, немного теории
например чекбокс это класс, те объявление
var uCBox: TCheckBox; означает объявления указателя uCBox на экземпляр класса TCheckBox, те по адресу скрытому под uCBox
лежит экземпляр класса TCheckBox, который включает в себя методы и свойства
те например свойство Checked имеет за собой как минимум одну булев переменную, простейший пример реализации свойства http://www.delphibasics.ru/Property.php
а есть и другие свойства и методы и локальные методы и свойства в private и всё это занимает память, те речь идёт о экономии памяти.
При вызове метода Free; экземпляр класса по адресу uCBox разрушается и занимаемая им память освобождается
2. Если чекбокс не был создан, то при попытке прочитать значения свойства (отмечен (да/нет)) вылетит ошибка чтения адреса
чтение идёт:
указатель(uCBox)---->указатель(локальная переменная например fArea : LongInt; в примере по ссылке выше)---->значение размером SizeOf(Longint), тк fArea : LongInt;
которое лежит или "начинает лежать" по адресу в последнем указателе fArea
те LongInt = 32 битное число. 1 Byte = 8 Bit. ----> 4 * 8 = 32 => размер LongInt = 4 байта
, НО мы то чекбокс не создали и по адресу uCBox лежит мусор, если не ошибаюсь из "Кучи" - остатки других программ, а адреса fArea тем более нет
те след. вопросом Mat_y могло быть: "почему когда программа установлена вылетает ошибка при проверке отмечен он или нет"
те при динамичном создании компонентов неплохо бы делать простую проверку, а именно
при инициализации присваивать значение нулевого указателя nil http://www.delphibasics.ru/Nil.php
uCBox := nil
и потом проверять if uCBox <> nil (if Assigned(uCBox )) then if uCBox.Checked then ...
короче так:
var
MyTask: TCheckBox;
procedure InitializeWizard();
var
Installed: Boolean;
begin
MyTask := nil;
Installed := RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + ExpandConstant('{#SetupSetting("AppID")}') + '_is1');
if not Installed then
begin
// присваиваем значение указателя которое возвращает метод конструктора Create
MyTask := TCheckBox.Create(nil);
with MyTask do
begin
Parent := WizardForm.SelectDirPage;
SetBounds(ScaleX(0), ScaleY(180), ScaleX(400), ScaleY(15));
Caption := 'Я хочу создать резервную копию';
Checked := not Installed;
end;
end;
if MyTask <> nil then if MyTask.Checked then Beep;
end;
Farser21
26-10-2013, 00:47
Всем доброго времени суток. Подскажите пожалуйста как убрать это из моего установщика:
http://s1.ipicture.ru/uploads/20131026/f0X7fTyA.png
Скрипт:
#include "botva2.iss"
#include "BASS_Module.iss"
#define Pic1 "Анимированный прицел (Снайперский)"
#define Pic2 "Белый прицел"
#define Pic3 "Прицел как у 40 тонн"
#define Pic4 "Прицел Кирилла Орешкина (Зеленый)"
#define Pic5 "Прицел Кирилла Орешкина (Синий)"
#define Pic6 "Сведение с Пробитием снаряда и Толщиной брони"
#define Pic7 "Снайперский прицел (Простой)"
#define Pic8 "Снайперский прицел Warface"
#define Pic9 "Снайперский прицел Минималистический"
#define Pic10 "Спайперский прицел ZX mini"
#define Pic11 "Анимированный Арт-прицел"
#define Pic12 "Арт-прицел (Белый)"
#define Pic13 "Арт-прицел (Простой)"
#define Pic14 "Необычный Арт-прицел"
#define Pic15 "Анимированная Дамаг панель"
#define Pic16 "Дамаг панель (Прозрачная) с таймером починки"
#define Pic17 "Дамаг панель (Прозрачная)"
#define Pic18 "Дамаг панель (С новыми иконками модулей)"
#define Pic19 "Дамаг панель Xbox"
#define Pic20 "Дамаг панель Бионик (Зеленый)"
#define Pic21 "Дамаг панель Бионик (Черный)"
#define Pic22 "Дамаг панель в стиле RPG"
#define Pic23 "Дамаг панель от zayaz"
#define Pic24 "Китайская дамаг панель"
#define Pic25 "Дамаг индикатор (Легкий)"
#define Pic26 "Дамаг индикатор (Простой)"
#define Pic27 "Дамаг индикатор (Пуля)"
#define Pic28 "Дамаг индикатор Warface"
#define Pic29 "Дамаг индикатор"
#define Pic30 "Маркер фокуса (Атакую) желтый"
#define Pic31 "Маркер фокуса (Атакую) зеленый"
#define Pic32 "Маркер фокуса (Атакую) красный"
#define Pic33 "Маркер фокуса (Атакую) синий"
#define Pic34 "УГН для ПТ (Желтые)"
#define Pic35 "УГН для ПТ в стиле zayaz"
#define Pic36 "УГН для ПТ и Арты (MeltyMap) + Улучшеная мини-карта"
#define Pic37 "УГН для ПТ и Арты (Квадратные)"
#define Pic38 "УГН для ПТ и Арты (Оранжевые)"
#define Pic39 "Иконки снарядов"
#define Pic40 "Мини карта (Названия танков, луч, радиус обзора)"
[Setup]
SourceDir=.
OutputDir=Setup
AppName=Сборка модов от Farser (Собери сам)
AppVerName=Сборка модов от Farser (Собери сам)
AppVersion=0.8.9
DefaultDirName={pf}\World_of_Tanks
DefaultGroupName=Сборка модов от Farser (Собери сам)
AllowNoIcons=yes
OutputBaseFilename=setup
WizardImageFile=Images\Внешний вид\1.bmp
WizardSmallImageFile=Images\Внешний вид\2.bmp
SetupIconFile=Images\Внешний вид\back.ico
WindowVisible=no
WindowShowCaption=no
WindowResizable=no
Compression=lzma/normal
DiskSpanning=yes
DiskSliceSize=2100000000
SlicesPerDisk=1
[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
[Components]
Name: g0; Description: Прицелы; Flags: collapsed dontinheritcheck
Name: g0\c1; Description: Анимированный прицел (Снайперский); Flags: exclusive
Name: g0\c2; Description: Белый прицел; Flags: exclusive
Name: g0\c3; Description: Прицел как у 40 тонн; Flags: exclusive
Name: g0\c4; Description: Прицел Кирилла Орешкина (Зеленый); Flags: exclusive
Name: g0\c5; Description: Прицел Кирилла Орешкина (Синий); Flags: exclusive
Name: g0\c6; Description: Сведение с Пробитием снаряда и Толщиной брони; Flags: exclusive
Name: g0\c7; Description: Снайперский прицел (Простой); Flags: exclusive
Name: g0\c8; Description: Снайперский прицел Warface; Flags: exclusive
Name: g0\c10; Description: Снайперский прицел Минималистический; Flags: exclusive
Name: g0\c8; Description: Снайперский прицел TAIPAN; Flags: exclusive
Name: g0\c10; Description: Прицел от Андрея Тареева; Flags: exclusive
Name: g0; Description: Арт-Прицелы; Flags: collapsed dontinheritcheck
Name: g0\c11; Description: Анимированный Арт-прицел; Flags: exclusive
Name: g0\c14; Description: Арт-прицел (Белый); Flags: exclusive
Name: g0\c15; Description: Арт-прицел (Простой); Flags: exclusive
Name: g0\c16; Description: Необычный Арт-прицел; Flags: exclusive
Name: g0; Description: Панели повреждений; Flags: collapsed dontinheritcheck
Name: g0\c17; Description: Анимированная Дамаг панель; Flags: exclusive
Name: g0\c18; Description: Дамаг панель (Прозрачная); Flags: exclusive
Name: g0\c19; Description: Дамаг панель (Прозрачная) с таймером починки; Flags: exclusive
Name: g0\c20; Description: Дамаг панель (С новыми иконками модулей); Flags: exclusive
Name: g0\c21; Description: Дамаг панель Xbox; Flags: exclusive
Name: g0\c22; Description: Дамаг панель Бионик (Зеленый); Flags: exclusive
Name: g0\c23; Description: Дамаг панель Бионик (Черный); Flags: exclusive
Name: g0\c24; Description: Дамаг панель в стиле RPG; Flags: exclusive
Name: g0\c25; Description: Дамаг панель от zayaz; Flags: exclusive
Name: g0\c26; Description: Китайская дамаг панель; Flags: exclusive
Name: g0; Description: Дамаг индикаторы; Flags: collapsed dontinheritcheck
Name: g0\c27; Description: Дамаг индикатор; Flags: exclusive
Name: g0\c28; Description: Дамаг индикатор (Легкий); Flags: exclusive
Name: g0\c29; Description: Дамаг индикатор (Пуля); Flags: exclusive
Name: g0\c30; Description: Дамаг индикатор Warface; Flags: exclusive
Name: g0\c30; Description: Дамаг индикатор (Простой); Flags: exclusive
Name: g0; Description: Маркеры фокуса; Flags: collapsed dontinheritcheck
Name: g0\c31; Description: Маркер фокуса (Атакую) желтый; Flags: exclusive
Name: g0\c32; Description: Маркер фокуса (Атакую) зеленый; Flags: exclusive
Name: g0\c33; Description: Маркер фокуса (Атакую) красный; Flags: exclusive
Name: g0\c34; Description: Маркер фокуса (Атакую) синий; Flags: exclusive
Name: g0; Description: УГН (Углы Горизонтальной Наводки); Flags: collapsed dontinheritcheck
Name: g0\c35; Description: УГН для ПТ (Желтые); Flags: exclusive
Name: g0\c36; Description: УГН для ПТ в стиле zayaz; Flags: exclusive
Name: g0\c37; Description: УГН для ПТ и Арты (MeltyMap) + Улучшеная мини-карта; Flags: exclusive
Name: g0\c38; Description: УГН для ПТ и Арты (Квадратные); Flags: exclusive
Name: g0\c39; Description: УГН для ПТ и Арты (Оранжевые); Flags: exclusive
Name: g0; Description: Иконки; Flags: collapsed dontinheritcheck
Name: g0\c41; Description: Иконки снарядов; Flags: dontinheritcheck
Name: g0; Description: Мини-карты; Flags: collapsed dontinheritcheck
Name: g0\c44; Description: Мини карта (Названия танков, луч, радиус обзора); Flags: exclusive
Name: g0\c44; Description: Мини карта (Названия танков, луч, сонар, радиус обзора, ники игроков); Flags: exclusive
Name: g0\c44; Description: Мини карта Мини карта (Направление стволом противника и арты); Flags: exclusive
Name: g0; Description: Часы; Flags: collapsed dontinheritcheck
Name: g0\c46; Description: Часы в бою; Flags: dontinheritcheck
Name: g0\c47; Description: Часы с датой в ангаре (Белые); Flags: dontinheritcheck
Name: g0\c48; Description: Часы с датой в бою; Flags: dontinheritcheck
Name: g0; Description: Шкурки; Flags: dontinheritcheck
Name: g0; Description: Разное; Flags: collapsed dontinheritcheck
Name: g0\c51; Description: Дебуг панель; Flags: dontinheritcheck
Name: g0\c52; Description: Души танков; Flags: dontinheritcheck
Name: g0\c53; Description: Души танков в виде Оленя; Flags: dontinheritcheck
Name: g0\c54; Description: Зум; Flags: dontinheritcheck
Name: g0\c55; Description: Убираем черноту в снайперском режиме; Flags: dontinheritcheck
Name: g0\c56; Description: Цветные пробития; Flags: dontinheritcheck
#define Files
[Files]
#ifdef Files
Source: "Сборка (Собери Сам)\---Прицелы---\Анимированный прицел (Снайперский)\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c1
Source: "Сборка (Собери Сам)\---Прицелы---\Белый прицел\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c2
Source: "Сборка (Собери Сам)\---Прицелы---\Прицел как у 40 тонн\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c3
Source: "Сборка (Собери Сам)\---Прицелы---\Прицел Кирилла Орешкина (Зеленый)\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c4
Source: "Сборка (Собери Сам)\---Прицелы---\Прицел Кирилла Орешкина (Синий)\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c5
Source: "Сборка (Собери Сам)\---Прицелы---\Сведение с Пробитием снаряда и Толщиной брони\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c6
Source: "Сборка (Собери Сам)\---Прицелы---\Снайперский прицел (Простой)\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c7
Source: "Сборка (Собери Сам)\---Прицелы---\Снайперский прицел Warface\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c8
Source: "Сборка (Собери Сам)\---Прицелы---\Снайперский прицел Минималистический\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c10
Source: "Сборка (Собери Сам)\---Прицелы---\Снайперский прицел TAIPAN\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c10
Source: "Сборка (Собери Сам)\---Прицелы---\Прицел от Андрея Тареева\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c10
Source: "Сборка (Собери Сам)\---Арт прицелы---\Анимированный Арт-прицел\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c11
Source: "Сборка (Собери Сам)\---Арт прицелы---\Арт-прицел (Белый)\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c14
Source: "Сборка (Собери Сам)\---Арт прицелы---\Арт-прицел (Простой)\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c15
Source: "Сборка (Собери Сам)\---Арт прицелы---\Необычный Арт-прицел\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c16
Source: "Сборка (Собери Сам)\---Панели повреждений---\Анимированная Дамаг панель\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c17
Source: "Сборка (Собери Сам)\---Панели повреждений---\Дамаг панель (Прозрачная)\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c18
Source: "Сборка (Собери Сам)\---Панели повреждений---\Дамаг панель (Прозрачная) с таймером починки\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c19
Source: "Сборка (Собери Сам)\---Панели повреждений---\Дамаг панель (С новыми иконками модулей)\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c20
Source: "Сборка (Собери Сам)\---Панели повреждений---\Дамаг панель Xbox\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c21
Source: "Сборка (Собери Сам)\---Панели повреждений---\Дамаг панель Бионик (Зеленый)\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c22
Source: "Сборка (Собери Сам)\---Панели повреждений---\Дамаг панель Бионик (Черный)\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c23
Source: "Сборка (Собери Сам)\---Панели повреждений---\Дамаг панель в стиле RPG\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c24
Source: "Сборка (Собери Сам)\---Панели повреждений---\Дамаг панель от zayaz\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c25
Source: "Сборка (Собери Сам)\---Панели повреждений---\Китайская дамаг панель\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c26
Source: "Сборка (Собери Сам)\---Дамаг индикаторы---\Дамаг индикатор\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c27
Source: "Сборка (Собери Сам)\---Дамаг индикаторы---\Дамаг индикатор (Легкий)\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c28
Source: "Сборка (Собери Сам)\---Дамаг индикаторы---\Дамаг индикатор (Пуля)\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c29
Source: "Сборка (Собери Сам)\---Дамаг индикаторы---\Дамаг индикатор Warface\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c30
Source: "Сборка (Собери Сам)\---Маркеры фокуса---\Маркер фокуса (Атакую) желтый\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c31
Source: "Сборка (Собери Сам)\---Маркеры фокуса---\Маркер фокуса (Атакую) зеленый\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c32
Source: "Сборка (Собери Сам)\---Маркеры фокуса---\Маркер фокуса (Атакую) красный\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c33
Source: "Сборка (Собери Сам)\---Маркеры фокуса---\Маркер фокуса (Атакую) синий\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c34
Source: "Сборка (Собери Сам)\---УГН---\УГН для ПТ (Желтые)\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c35
Source: "Сборка (Собери Сам)\---УГН---\УГН для ПТ в стиле zayaz\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c36
Source: "Сборка (Собери Сам)\---УГН---\УГН для ПТ и Арты (MeltyMap) + Улучшеная мини-карта\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c37
Source: "Сборка (Собери Сам)\---УГН---\УГН для ПТ и Арты (Квадратные)\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c38
Source: "Сборка (Собери Сам)\---УГН---\УГН для ПТ и Арты (Оранжевые)\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c39
Source: "Сборка (Собери Сам)\---Иконки---\Иконки снарядов\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c41
Source: "Сборка (Собери Сам)\---Мини карты---\Мини карта (Названия танков, луч, радиус обзора)\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c44
Source: "Сборка (Собери Сам)\---Мини карты---\Мини карта (Названия танков, луч, сонар, радиус обзора, ники игроков)\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c44
Source: "Сборка (Собери Сам)\---Мини карты---\Мини карта (Направление стволом противника и арты)\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c44
Source: "Сборка (Собери Сам)\---Часы---\Часы в бою\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c46
Source: "Сборка (Собери Сам)\---Часы---\Часы с датой в ангаре (Белые)\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c47
Source: "Сборка (Собери Сам)\---Часы---\Часы с датой в бою\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c48
Source: "Сборка (Собери Сам)\---Разное---\Дебуг панель\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c51
Source: "Сборка (Собери Сам)\---Разное---\Души танков\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c52
Source: "Сборка (Собери Сам)\---Разное---\Души танков в виде Оленя\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c53
Source: "Сборка (Собери Сам)\---Разное---\Зум\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c54
Source: "Сборка (Собери Сам)\---Разное---\Убираем черноту в снайперском режиме\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c55
Source: "Сборка (Собери Сам)\---Разное---\Цветные пробития\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c56
#endif
Source: BASS_Files\*; DestDir: {tmp}; Flags: dontcopy
Source: C:\Users\Farser\Desktop\BASS_Files\music.mp3; DestDir: {tmp}; Flags: dontcopy
Source: Images\Содержимое\{#Pic1}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic2}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic3}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic4}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic5}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic6}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic7}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic8}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic9}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic10}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic11}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic12}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic13}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic14}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic15}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic16}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic17}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic18}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic19}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic20}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic21}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic22}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic23}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic24}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic25}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic26}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic27}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic28}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic29}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic30}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic31}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic32}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic33}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic34}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic35}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic36}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic37}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic38}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic39}.bmp; Flags: dontcopy nocompression
Source: Images\Содержимое\{#Pic40}.bmp; Flags: dontcopy nocompression
[Icons]
Name: "{group}\{cm:UninstallProgram,World of Tanks}"; Filename: "{uninstallexe}"
[UninstallDelete]
Name: {app}; Type: dirifempty;
[code]
[code]
#ifdef UNICODE
#define A "W"
#else
#define A "A"
#endif
const
UNDEF_INDEX = -777;
ALPHA_BLEND_LEVEL = 230; // max=Byte=255
WS_EX_LAYERED = $80000;
WS_EX_TRANSPARENT = $20;
LWA_COLORKEY = 1;
LWA_ALPHA = 2;
GWL_EXSTYLE = (-20);
Color = clblack;
procedure Formcolor();
begin
WizardForm.Font.Color:=clWhite;
WizardForm.TypesCombo.TabStop := False;
WizardForm.Color:=Color;
WizardForm.WelcomePage.Color:=Color;
WizardForm.InnerPage.Color:=Color;
WizardForm.FinishedPage.Color:=Color;
WizardForm.LicensePage.Color:=Color;
WizardForm.PasswordPage.Color:=Color;
WizardForm.InfoBeforePage.Color:=Color;
WizardForm.UserInfoPage.Color:=Color;
WizardForm.SelectDirPage.Color:=Color;
WizardForm.SelectComponentsPage.Color:=Color;
WizardForm.SelectProgramGroupPage.Color:=Color;
WizardForm.SelectTasksPage.Color:=Color;
WizardForm.ReadyPage.Color:=Color;
WizardForm.PreparingPage.Color:=Color;
WizardForm.InstallingPage.Color:=Color;
WizardForm.InfoAfterPage.Color:=Color;
WizardForm.DirEdit.Color:=Color;
WizardForm.DiskSpaceLabel.Color:=Color;
WizardForm.DirEdit.Color:=Color;
WizardForm.GroupEdit.Color:=Color;
WizardForm.PasswordLabel.Color:=Color;
WizardForm.PasswordEdit.Color:=Color;
WizardForm.PasswordEditLabel.Color:=Color;
WizardForm.ReadyMemo.Color:=Color;
WizardForm.ReadyMemo.ScrollBars:= ssNone
WizardForm.DirEdit.TabStop := False;
WizardForm.TypesCombo.Color:=Color;
WizardForm.WelcomeLabel1.Color:=Color;
WizardForm.WelcomeLabel1.Font.Color:=clWhite;
WizardForm.GroupEdit.TabStop := False;
WizardForm.InfoBeforeClickLabel.Color:=Color;
WizardForm.MainPanel.Color:=Color;
WizardForm.PageNameLabel.Color:=Color;
WizardForm.PageDescriptionLabel.Color:=Color;
WizardForm.ReadyLabel.Color:=Color;
WizardForm.FinishedLabel.Color:=Color;
WizardForm.YesRadio.Color:=Color;
WizardForm.NoRadio.Color:=Color;
WizardForm.WelcomeLabel2.Color:=Color;
WizardForm.LicenseLabel1.Color:=Color;
WizardForm.InfoAfterClickLabel.Color:=Color;
WizardForm.ComponentsList.Color:=Color;
WizardForm.ComponentsDiskSpaceLabel.Color:=Color;
WizardForm.BeveledLabel.Color:=Color;
WizardForm.StatusLabel.Color:=Color;
WizardForm.FilenameLabel.Color:=Color;
WizardForm.SelectDirLabel.Color:=Color;
WizardForm.SelectStartMenuFolderLabel.Color:=Color;
WizardForm.SelectComponentsLabel.Color:=Color;
WizardForm.SelectTasksLabel.Color:=Color;
WizardForm.LicenseAcceptedRadio.Color:=Color;
WizardForm.LicenseNotAcceptedRadio.Color:=Color;
WizardForm.UserInfoNameLabel.Color:=Color;
WizardForm.UserInfoNameEdit.Color:=Color;
WizardForm.UserInfoOrgLabel.Color:=Color;
WizardForm.UserInfoOrgEdit.Color:=Color;
WizardForm.PreparingLabel.Color:=Color;
WizardForm.FinishedHeadingLabel.Color:=Color;
WizardForm.FinishedHeadingLabel.Font.Color:=clWhite;
WizardForm.ComponentsList.TreeViewStyle := True;
WizardForm.UserInfoSerialLabel.Color:=Color;
WizardForm.UserInfoSerialEdit.Color:=Color;
WizardForm.TasksList.Color:=Color;
WizardForm.RunList.Color:=Color;
WizardForm.SelectDirBrowseLabel.Color:=Color;
WizardForm.SelectStartMenuFolderBrowseLabel.Color:=Color;
WizardForm.PageNameLabel.Font.Color:=clWhite;
end;
var
InfoPic: TBitmapImage;
LastIndex: Integer;
TempPath: String;
PicForm: TForm;
type
COLORREF = DWORD;
function GetCursorPos(var lpPoint: TPoint): BOOL; external 'GetCursorPos@user32.dll stdcall';
function SetLayeredWindowAttributes(Hwnd: THandle; crKey: COLORREF; bAlpha: Byte; dwFlags: DWORD): Boolean; external 'SetLayeredWindowAttributes@user32.dll stdcall';
function GetWindowLong(hWnd: HWND; nIndex: Integer): Longint; external 'GetWindowLong{#A}@user32.dll stdcall';
function SetWindowLong(hWnd: HWND; nIndex: Integer; dwNewLong: Longint): Longint; external 'SetWindowLong{#A}@user32.dll stdcall';
function SetFocus(hWnd: HWND): HWND; external 'SetFocus@user32.dll stdcall';
procedure ShowPicHint(const PicFilePath: String);
var
pt: TPoint;
begin
if not GetCursorPos(pt) then Exit;
InfoPic.Bitmap.LoadFromFile(PicFilePath);
try
with PicForm do
begin
SetBounds(ScaleX(pt.x + 16), ScaleY(pt.y + 7), InfoPic.Width, InfoPic.Height);
SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_LAYERED);
SetLayeredWindowAttributes(Handle, 0, ALPHA_BLEND_LEVEL, LWA_ALPHA);
Show;
end;
finally
SetFocus(WizardForm.Handle);
end;
end;
procedure CompOnItemMouseMove(Sender: TObject; X, Y: Integer; Index: Integer; Area: TItemArea);
var
UndefPic: String;
begin
if Index = -1 then Exit;
if Index = LastIndex then Exit;
try
case TNewCheckListBox(Sender).ItemCaption[Index] of
'Анимированный прицел (Снайперский)': UndefPic := '{#Pic1}.bmp';
'Белый прицел': UndefPic := '{#Pic2}.bmp';
'Прицел как у 40 тонн': UndefPic := '{#Pic3}.bmp';
'Прицел Кирилла Орешкина (Зеленый)': UndefPic := '{#Pic4}.bmp';
'Прицел Кирилла Орешкина (Синий)': UndefPic := '{#Pic5}.bmp';
'Сведение с Пробитием снаряда и Толщиной брони': UndefPic := '{#Pic6}.bmp';
'Снайперский прицел (Простой)': UndefPic := '{#Pic7}.bmp';
'Снайперский прицел Warface': UndefPic := '{#Pic8}.bmp';
'Снайперский прицел Минималистический': UndefPic := '{#Pic9}.bmp';
'Спайперский прицел ZX mini': UndefPic := '{#Pic10}.bmp';
'Анимированный Арт-прицел': UndefPic := '{#Pic11}.bmp';
'Арт-прицел (Белый)': UndefPic := '{#Pic12}.bmp';
'Арт-прицел (Простой)': UndefPic := '{#Pic13}.bmp';
'Необычный Арт-прицел': UndefPic := '{#Pic14}.bmp';
'Анимированная Дамаг панель': UndefPic := '{#Pic15}.bmp';
'Дамаг панель (Прозрачная)': UndefPic := '{#Pic16}.bmp';
'Дамаг панель (Прозрачная) с таймером починки': UndefPic := '{#Pic17}.bmp';
'Дамаг панель (С новыми иконками модулей)': UndefPic := '{#Pic18}.bmp';
'Дамаг панель Xbox': UndefPic := '{#Pic19}.bmp';
'Дамаг панель Бионик (Зеленый)': UndefPic := '{#Pic20}.bmp';
'Дамаг панель Бионик (Черный)': UndefPic := '{#Pic21}.bmp';
'Дамаг панель в стиле RPG': UndefPic := '{#Pic22}.bmp';
'Дамаг панель от zayaz': UndefPic := '{#Pic23}.bmp';
'Китайская дамаг панель': UndefPic := '{#Pic24}.bmp';
'Дамаг индикатор (Легкий)': UndefPic := '{#Pic25}.bmp';
'Дамаг индикатор (Простой)': UndefPic := '{#Pic26}.bmp';
'Дамаг индикатор (Пуля)': UndefPic := '{#Pic27}.bmp';
'Дамаг индикатор Warface': UndefPic := '{#Pic28}.bmp';
'Дамаг индикатор': UndefPic := '{#Pic29}.bmp';
'Маркер фокуса (Атакую) желтый': UndefPic := '{#Pic30}.bmp';
'Маркер фокуса (Атакую) зеленый': UndefPic := '{#Pic31}.bmp';
'Маркер фокуса (Атакую) красный': UndefPic := '{#Pic32}.bmp';
'Маркер фокуса (Атакую) синий': UndefPic := '{#Pic33}.bmp';
'УГН для ПТ (Желтые)': UndefPic := '{#Pic34}.bmp';
'УГН для ПТ в стиле zayaz': UndefPic := '{#Pic35}.bmp';
'УГН для ПТ и Арты (MeltyMap) + Улучшеная мини-карта': UndefPic := '{#Pic36}.bmp';
'УГН для ПТ и Арты (Квадратные)': UndefPic := '{#Pic37}.bmp';
'УГН для ПТ и Арты (Оранжевые)': UndefPic := '{#Pic38}.bmp';
'Иконки снарядов': UndefPic := '{#Pic39}.bmp';
'Мини карта (Названия танков, луч, радиус обзора)': UndefPic := '{#Pic40}.bmp';
else
begin
LastIndex := UNDEF_INDEX;
PicForm.Hide;
Exit;
end;
end;
if not FileExists(TempPath + UndefPic) then ExtractTemporaryFile(UndefPic);
ShowPicHint(TempPath + UndefPic);
finally
LastIndex := Index;
end;
end;
procedure CompOnMouseLeave(Sender: TObject);
begin
PicForm.Hide;
end;
procedure InitInfo();
begin
WizardForm.ComponentsList.OnItemMouseMove := @CompOnItemMouseMove;
WizardForm.ComponentsList.OnMouseLeave := @CompOnMouseLeave;
TempPath := AddBackslash(ExpandConstant('{tmp}'));
LastIndex := UNDEF_INDEX;
PicForm := TForm.Create(WizardForm)
with PicForm do
begin
BorderStyle := bsNone;
FormStyle := fsStayOnTop;
InfoPic := TBitmapImage.Create(PicForm)
with InfoPic do
begin
Parent := PicForm;
AutoSize := True;
end;
end;
end;
procedure InitializeWizard();
begin
Formcolor();
InitInfo();
ExtractTemporaryFile('BASS.dll');
ExtractTemporaryFile('CallbackCtrl.dll');
ExtractTemporaryFile('botva2.dll');
ExtractTemporaryFile('MusicButton.png');
ExtractTemporaryFile('Music.mp3');
BASS_Init('{tmp}\Music.mp3') //Запускаем музыку
//Можно добавить в инсталл несколько песен
//BASS_Init(ExpandConstant('{tmp}\*')) //Поиск по маске
BASS_CreateOnOffButton(WizardForm, '{tmp}\MusicButton.png', 20, 320, 36, 36, 4) //Создаем кнопку вкл/выкл
end;
procedure DeinitializeSetup();
begin
BASS_DeInit; //Освобождаем процесс
gdipShutdown
end;
Подскажите пожалуйста как убрать это из моего установщика »
[Code]
procedure InitializeWizard();
begin
WizardForm.TypesCombo.Visible := False;
end;
Приветствую.
Вот так:
begin
with WizardForm do
begin
with ComponentsList do
begin
OnItemMouseMove := @ComponentsListItemMouseMove;
end;
end;
Происходит действие (например картинка показывается, соответствующая компоненту) при наведении на компонент...
... есть ли способ, делать то же самое, но только при выборе компонента (его выделении, клику по нему)?
2/ Есть ли способ убить запущенный процесс (рабочую программу) при установке на нее? В справке нашел 2 варианта, но ни один не сработал...
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.