Войти

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


Страниц : 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

tsskz
24-02-2013, 11:07
insombia
Inno Setup Ultra
думаю не точно объяснил - выдает ошибку не при сборке, а при установки - при попытки перейти на страницу компонентов

Tco 03
24-02-2013, 15:28
Это удобно, тк я заргузил бы его немного изменённой функцией El Sanchez-а и прочитал бы как ини и не нужно код переписывать? »
А возможно ли функцией El Sanchez-а INI-файл загрузить из инсталлятора сразу в оперативную память, не извлекая его на жёсткий диск?

Johny777
25-02-2013, 04:22
Tco 03,
А возможно ли функцией El Sanchez-а INI-файл загрузить из инсталлятора сразу в оперативную память, не извлекая его на жёсткий диск? »
Возможно! Благодаря функции расширенной версии инно ExtractTemporaryFileToBuffer(...).
на основе примера \Inno Setup 5\Examples\Example_ExtractTemporaryFileToBuffer.iss сделал простенькую функцию:

function TempTextFileToString(const Filename: String): String;
begin
SetLength(Result, ExtractTemporaryFileSize(FileName));
#ifdef UNICODE
ExtractTemporaryFileToBuffer(FileName, CastAnsiStringToInteger(Result));
#else
ExtractTemporaryFileToBuffer(FileName, CastStringToInteger(Result));
#endif
end;

входной параметр - имя временного файла, содержащего текст
на выходе - строка
ну и соответственно немного изменил функцию El Sanchez-а парсинга ини-файла
оригинальный прототип - function ParseIniFile(const Filename: String): TIniFile; ( полный код тут: http://forum.oszone.net/thread-235078-93.html )
на function ConvertStringToIniFile(const uString: String): TIniFile;
код ниже использует в качестве примера ини следующего содержания:

[Constructor]
Install_Pics_Off=
Backgr_Pic_Off=1
Quit_Dialog_Off=

код:

#ifndef IS_ENHANCED
#error Enhanced edition of Inno Setup (restools) is required to compile this script
#endif

[Setup]
AppName=Modified El Sanchez Ini-Parsing-Demo
AppVerName=777
CreateAppDir=no

[Files]
Source: Selfish.ini; Flags: dontcopy

[code]
type
TIniFile = array of record
Section: String;
Entries: TStringList;
end;


function ConvertStringToIniFile(const uString: String): TIniFile;
var
iFile: TStringList;
i, Len: Integer;
begin
iFile := TStringList.Create;
try
iFile.Text := uString;
SetArrayLength(Result, 0);
//для всех непустых строк, исключая комментарии
for i := 0 to iFile.Count-1 do if (iFile[i] <> '') and (Copy(iFile[i], 1, 1) <> ';') then
//если строка является секцией...
if (Pos('[', iFile[i]) = 1) and (Pos(']', iFile[i]) = Length(iFile[i])) then
begin
//...пишем в результат имя секции...
Len := GetArrayLength(Result);
SetArrayLength(Result, Len+1);
Result[Len].Section := Copy(iFile[i], 2, Length(iFile[i])-2);
end
else
begin
//...иначе пишем пару параметр/значение
if TObject(Result[GetArrayLength(Result)-1].Entries) = nil then
Result[GetArrayLength(Result)-1].Entries := TStringList.Create;
Result[GetArrayLength(Result)-1].Entries.Append(iFile[i]);
end;

finally
iFile.Free;
end;
end;


//своя функция для чтения значений параметров из секций
function GetIniValue(const Section, Key, Default: String; iFile: TIniFile): String;
var
i, j: Integer;
begin
Result := Default;
for i := 0 to GetArrayLength(iFile)-1 do if CompareText(iFile[i].Section, Section) = 0 then
begin
for j := 0 to iFile[i].Entries.Count-1 do if CompareText(iFile[i].Entries.Names[j], Key) = 0 then
begin
Result := iFile[i].Entries.Values[Key];
Break;
end;
Break;
end;
end;


function TempTextFileToString(const Filename: String): String;
begin
SetLength(Result, ExtractTemporaryFileSize(FileName));
#ifdef UNICODE
ExtractTemporaryFileToBuffer(FileName, CastAnsiStringToInteger(Result));
#else
ExtractTemporaryFileToBuffer(FileName, CastStringToInteger(Result));
#endif
end;


procedure InitializeWizard();
var
Ini: TIniFile;
begin
Ini := ConvertStringToIniFile(TempTextFileToString('Selfish.ini'));
MsgBox(GetIniValue('Constructor', 'Backgr_Pic_Off', '0', Ini), mbInformation, MB_OK);
end;


=========================================================================================

El Sanchez,
да, их достаточно »
спасибо, кажись разобрался :)
результат (работает с кодом чуть выше):

procedure RegisterPreviousData(PreviousDataKey: Integer);
begin
SetPreviousData(PreviousDataKey, 'Install',
'[Parameters]' + #13#10 +
'Launch_hl2=-console' + #13#10 + // тест
'Launch_hl2_ep1=' + #13#10 +
'Launch_hl2_ep2=' + #13#10 +
'Launch_portal=' + #13#10 +
'' + #13#10 +
'[Installed]' + #13#10 +
';Half-Life 2' + #13#10 +
'hl2=' + #13#10 +
'hl2_ru=' + #13#10 +
'hl2_ru_buka=' + #13#10 +
'hl2_en=' + #13#10 +
'hl2_ru_en=1' + #13#10 + // тест
'AuroraB=' + #13#10 +
'' + #13#10 +
';Half-Life 2 Episode One' + #13#10 +
'ep1=' + #13#10 +
'ep1_ru=' + #13#10 +
'ep1_en=' + #13#10 +
'ep1_ru_en=' + #13#10 +
'' + #13#10 +
';Half-Life 2 Episode Two' + #13#10 +
'ep2=' + #13#10 +
'ep2_ru=' + #13#10 +
'ep2_en=' + #13#10 +
'ep2_ru_en=' + #13#10 +
'' + #13#10 +
';Portal' + #13#10 +
'portal=' + #13#10 +
'portal_ru=' + #13#10 +
'portal_en=' + #13#10 +
'portal_ru_en=' + #13#10 +
'' + #13#10 +
';Common ' + #13#10 +
'Start_Folder_Exist='
);
end;


procedure InitializeWizard();
var
Ini: TIniFile;
begin
Ini := ConvertStringToIniFile(GetPreviousData('Install', ''));
MsgBox(GetIniValue('Parameters', 'Launch_hl2', '', Ini), mbInformation, MB_OK);
MsgBox(GetIniValue('Installed', 'hl2_ru_en', '', Ini), mbInformation, MB_OK);
end;

habib2302
25-02-2013, 09:11
люди.подскажите как создать несколько разделов на последней завершающей странице инсталлятора.
например:как указанно на этом скрине
http://i51.fastpic.ru/big/2013/0225/57/7a166b81ba1a4c6969a11ca86e184d57.png (http://i52.fastpic.ru/big/2013/0225/2a/29915aaccede9f15e6e7ea93e480fe2a.png)

alert30
25-02-2013, 13:14
habib2302, не ужели так трудно распаковать оригинальный инсталлятор через Universal Extractor; и скрипты будут...

insombia
25-02-2013, 17:47
кто-то может прогресс бар на iswin7 наложить?
http://rghost.ru/44102099

habib2302
25-02-2013, 19:07
alert30, тоже самое что и при извлечении через ISUnpacker
скрипт получается один и тот же
вот сами скрипты

это через ISUnpacker
;InnoSetupVersion=5.2.3

[Setup]
AppName=CheMax Rus
AppVerName=CheMax Rus 13.0
AppVersion=13.0
DefaultDirName={pf}\CheMaxRus
DefaultGroupName=CheMaxRus
OutputBaseFilename=CheMax 13.0 Rus
Compression=bzip2
WizardImageFile=embedded\WizardImage.bmp
WizardSmallImageFile=embedded\WizardSmallImage.bmp

[Files]
Source: "{app}\chemax.exe"; DestDir: "{app}";
Source: "{app}\cheats.dat"; DestDir: "{app}";
Source: "{app}\Readme.txt"; DestDir: "{app}";
Source: "{app}\Readme_ukr.txt"; DestDir: "{app}";
Source: "{app}\updater.exe"; DestDir: "{app}";

[Icons]
Name: "{group}\CheMax Rus"; Filename: "{app}\CheMax.exe"; WorkingDir: "{app}"; Comment: "CheMax Rus - Наибольшая русскоязычная чит база";
Name: "{group}\Readme"; Filename: "{app}\Readme.txt"; WorkingDir: "{app}"; Comment: "Прочти меня";
Name: "{group}\Удаление CheMax Rus"; Filename: "{app}\unins000.exe"; WorkingDir: "{app}"; Comment: "Удаление CheMax Rus";
Name: "{userdesktop}\CheMax Rus"; Filename: "{app}\CheMax.exe"; WorkingDir: "{app}"; Comment: "CheMax Rus - Наибольшая русскоязычная чит база"; Tasks: "desktopicon";
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\CheMax Rus"; Filename: "{app}\CheMax.exe"; WorkingDir: "{app}"; Comment: "CheMax Rus - Наибольшая русскоязычная чит база"; Tasks: "qlaunchicon";

[Tasks]
Name: "desktopicon"; Description: "Создать ярлык на &рабочем столе";
Name: "qlaunchicon"; Description: "Создать ярлык на &панели быстрого запуска";

[Types]
Name: "custom"; Description: "Выборочная установка";

[CustomMessages]
russian.NameAndVersion=%1, версия %2
russian.AdditionalIcons=Дополнительные значки:
russian.CreateDesktopIcon=Создать значок на &Рабочем столе
russian.CreateQuickLaunchIcon=Создать значок в &Панели быстрого запуска
russian.ProgramOnTheWeb=Сайт %1 в Интернете
russian.UninstallProgram=Деинсталлировать %1
russian.LaunchProgram=Запустить %1
russian.AssocFileExtension=Св&язать %1 с файлами, имеющими расширение %2
russian.AssocingFileExtension=Связывание %1 с файлами %2...

[Languages]
; These files are stubs
; To achieve better results after recompilation, use the real language files
Name: "russian"; MessagesFile: "embedded\russian.isl";

это через Universal Extractor
;InnoSetupVersion=5.2.3

[Setup]
AppName=CheMax Rus
AppVerName=CheMax Rus 13.0
DefaultDirName={pf}\CheMaxRus
DefaultGroupName=CheMaxRus
OutputBaseFilename=CheMax 13.0 Rus
Compression=bzip2
WizardImageFile=embedded\WizardImage.bmp
WizardSmallImageFile=embedded\WizardSmallImage.bmp

[Files]
Source: "{app}\chemax.exe"; DestDir: "{app}";
Source: "{app}\cheats.dat"; DestDir: "{app}";
Source: "{app}\Readme.txt"; DestDir: "{app}";
Source: "{app}\Readme_ukr.txt"; DestDir: "{app}";
Source: "{app}\updater.exe"; DestDir: "{app}";

[Icons]
Name: "{group}\CheMax Rus"; Filename: "{app}\CheMax.exe"; WorkingDir: "{app}"; Comment: "CheMax Rus - Наибольшая русскоязычная чит база";
Name: "{group}\Readme"; Filename: "{app}\Readme.txt"; WorkingDir: "{app}"; Comment: "Прочти меня";
Name: "{group}\Удаление CheMax Rus"; Filename: "{app}\unins000.exe"; WorkingDir: "{app}"; Comment: "Удаление CheMax Rus";
Name: "{userdesktop}\CheMax Rus"; Filename: "{app}\CheMax.exe"; WorkingDir: "{app}"; Comment: "CheMax Rus - Наибольшая русскоязычная чит база"; Tasks: "desktopicon";
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\CheMax Rus"; Filename: "{app}\CheMax.exe"; WorkingDir: "{app}"; Comment: "CheMax Rus - Наибольшая русскоязычная чит база"; Tasks: "qlaunchicon";

[Tasks]
Name: "desktopicon"; Description: "Создать ярлык на &рабочем столе";
Name: "qlaunchicon"; Description: "Создать ярлык на &панели быстрого запуска";

[Types]
Name: "custom"; Description: "Выборочная установка";

[CustomMessages]
russian.NameAndVersion=%1, версия %2
russian.AdditionalIcons=Дополнительные значки:
russian.CreateDesktopIcon=Создать значок на &Рабочем столе
russian.CreateQuickLaunchIcon=Создать значок в &Панели быстрого запуска
russian.ProgramOnTheWeb=Сайт %1 в Интернете
russian.UninstallProgram=Деинсталлировать %1
russian.LaunchProgram=Запустить %1
russian.AssocFileExtension=Св&язать %1 с файлами, имеющими расширение %2
russian.AssocingFileExtension=Связывание %1 с файлами %2...

[Languages]
; These files are stubs
; To achieve better results after recompilation, use the real language files
Name: "russian"; MessagesFile: "embedded\russian.isl";

Tco 03
25-02-2013, 20:25
Johny777
немного изменил функцию El Sanchez-а парсинга ини-файла
оригинальный прототип - function ParseIniFile(const Filename: String): TIniFile; ( полный код тут: http://forum.oszone.net/thread-235078-93.html ) »
El Sanchez и господин Johny777: как всегда, красяво :up:
Тут ещё одна делема есть... Возможно ли как-то загрузить этот самый INI-файл с хоста (из интернета) сразу в оперативную память? Используя тотже отличный код (http://forum.oszone.net/post-1930003-232.html) господина El Sanchez-а. Либо на примере скрипта: \Inno Setup 5\Examples\CodeAutomation.iss - правда там пример про XML-файл...
А то:
файлы (по замыслу) должны загружаются через интернет всегда одним установщиком и размер файлов прописывать в установщике (по понятным причинам) бесмысленно. »
То же самое и тут - файл же всё равно будет находиться в инсталляторе и всега один и тот же... :happy: Подскажите, пожалйтста, если такое возможно :empathy:

insombia
26-02-2013, 00:22
как убрать кнопку отмены isdone чтобы стандартная отвечала за отмену?

Johny777
26-02-2013, 03:00
insombia, извиняй iswin7 и Isdone не знаю. :(

==================================================================================================== ==================

habib2302,
люди.подскажите как создать несколько разделов на последней завершающей странице инсталлятора. »
Нужно создавать чекбоксы и проверять при нажатии на кнопку "Завершить" их статус, писать булев переменные, тк скорей всего они, чекбоксы, разрушатся и выполнять действия в зависимости от True значения перемнной. Тексты (TNewStaticText или TLabel), как и чекбоксы можешь создать в дизайнере расширенной версии.
Делай, будут непонятки - спрашивай!

и убирай пожалуйста длинные коды (как здесь http://forum.oszone.net/post-2098750-1760.html) под спойлер

==================================================================================================== ==================

Tco 03,
Возможно ли как-то загрузить этот самый INI-файл с хоста (из интернета) »
да :)
сразу в оперативную память »
не знаю как :( , а процедуру El Sanchez-а боюсь модифицировать, тк скорее всего накосячу!
Поэтому предлагаю такой вариант
используя WinApi функцию URLDownloadToFile( http://msdn.microsoft.com/en-us/library/ms775123%28v=vs.85%29.aspx )
вот пример простого скачивания файла (любого) куда хочешь:

function DownloadFile(const URL, FileName: String): Boolean; /// простое скачивание файла
begin
try
Result := UrlDownloadToFile(0, URL, FileName, 0, 0) = 0;
except
Result := False;
end;
end;

но мы будем качать в темп, потом загружать из текстового файла текст в переменную типа String и удалять файл вот таким вот чудо-макаром:

function TextFileFromInternetToString(const URL: String): String;
begin
try /// если файл скачался (функция UrlDownloadToFile возвращает 0) в папку темп, в файл uTextFile, то грузим его в строку, в данном случае сразу в зарезервированную переменную Result
if UrlDownloadToFile(0, URL, ExpandConstant('{tmp}\uTextFile'), 0, 0) = 0 then LoadStringFromFile(ExpandConstant('{tmp}\uTextFile'), Result);
finally
DeleteFile(ExpandConstant('{tmp}\uTextFile')); /// в конечном итоге удаляем файл
end;
end;

полный пример:

[Setup]
AppName=Download-File-Demo
AppVerName=777
CreateAppDir=no
InfoBeforeFile=compiler:license.txt


[ code]
#ifdef UNICODE
#define A "W"
#else
#define A "A"
#endif

function URLDownloadToFile(Caller: DWORD; URL, FileName: String; Reserved, StatusCB: DWORD): Longint; external 'URLDownloadToFile{#A}@UrlMon.dll stdcall';

function DownloadFile(const URL, FileName: String): Boolean; /// простое скачивание файла
begin
try
Result := UrlDownloadToFile(0, URL, FileName, 0, 0) = 0;
except
Result := False;
end;
end;

function TextFileFromInternetToString(const URL: String): String;
begin
try /// если файл скачался (функция UrlDownloadToFile возвращает 0) в папку темп, в файл uTextFile, то грузим его в строку, в данном случае сразу в зарезервированную переменную Result
if UrlDownloadToFile(0, URL, ExpandConstant('{tmp}\uTextFile'), 0, 0) = 0 then LoadStringFromFile(ExpandConstant('{tmp}\uTextFile'), Result);
finally
DeleteFile(ExpandConstant('{tmp}\uTextFile')); /// в конечном итоге удаляем файл
end;
end;

procedure InitializeWizard();
begin
DownloadFile('http://tululu.org/txt.php?id=38061', 'C:\Свихнувшееся время (Филип Дик).txt');
WizardForm.InfoBeforeMemo.Text := TextFileFromInternetToString('http://tululu.org/txt.php?id=38061');
end;

для чтения ини используй сразу вложенность функций Ini := ConvertStringToIniFile(TextFileFromInternetToString('http://tululu.org/txt.php?id=38061'));
PS: в данном случае качается не ини. Это просто пример

alert30
26-02-2013, 13:57
habib2302, насколько я помню типа: "<такая-то программа> рекомендует..." все засовано в BIN-е, если в скрипте такого нету.

Ай, какие хитроумельцы в завершающем установки такую добру делают в инсталляторе, CheMax Team!

fackessfook
26-02-2013, 22:20
здравствуйте помогите с ассоциациями, как только не писал в скрипте, но после установки приложения ассоциации не срабатывают. как ассоциировать аудио файлы с плеером AIMP3? хотя бы .mp3..

insombia
26-02-2013, 23:39
то что никто не знает как убрать кнопку отмены исдона чтобы отменяла стандартная?

Gnom_aka_Lexander
27-02-2013, 09:48
fackessfook, Шапка. Сборник скриптов в формате .chm (http://narod.ru/disk/7844921001/Inno%20Faq%201.4.chm.html) от Krinkels; Там пример ассоциации файлов есть. Помимо огромной кучи разных других полезных примеров, изучение которых снимет 99% вопросов.

cliff99
27-02-2013, 13:06
Здравствуйте.
Я автор популярного (как все утверждают) репака Half life Cinematic Mod
Cinematic mod Ultimate (https://www.google.by/webhp?hl=ru&tab=ii#hl=ru&sclient=psy-ab&q=cinematic+mod+ultimate+12.21&oq=cinematic+mod+ultimate+12.21&gs_l=hp.3...13979.17897.2.18541.8.7.1.0.0.0.205.1043.0j6j1.7.0...0.0...1c.1.4.psy-ab.zB-oO9Ih8sw&pbx=1&bav=on.2,or.r_gc.r_pw.r_qf.&bvm=bv.42965579,d.Yms&fp=14101bc6f7a20eba&biw=1600&bih=799)
Прошу мне помочь кое в чём.
Я в установщике использую опцию выбор компонентов.
http://i51.fastpic.ru/thumb/2013/0227/52/b0f1786feaa0adc53fb5b37b5c9abe52.jpeg (http://fastpic.ru/view/51/2013/0227/b0f1786feaa0adc53fb5b37b5c9abe52.jpg.html)
[Components]
Name: g0; Description: Half - Life 2 Cinematic Mod Models Setup; Types: full custom; Flags: disablenouninstallwarning checkablealone fixed
Name: g0\c8; Description: Установить доп контент и так далее; Types: full custom; Flags: dontinheritcheck
[Files]
Source: "E:\Setup Final ex\addons\MM\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension; Components: g0\c8
И при компиляции всё благополучно создаётся. Но эти самые компоненты ужимаются стандартными средствами inno setup.
Мне же нужно чтобы при выборе компонента он подхватывался из файла bin(arc) , допустим компонент1.bin и ужимал я его сам.
Дайте мне какой пример. Или обьясните как сделать.

GoshaPolo
27-02-2013, 14:04
Подскажите пожалуйста как поменять местами порядок вывода страниц, чтобы после страницы выбора папки установки появлялась страница выбора папки в меню Пуск, а не страница выбора компонентов установки?

Johny777
27-02-2013, 15:11
GoshaPolo, из своего опыта скажу - менять местами геморно. Нужно учитывать что находясь на странице
выбора директории мы находимся на странице выбора папки меню пуск и наоборот. Короче путаница. Поэтому
проще скрыть родную страницу, создать новую (где надо) и перекинуть на неё всё с родной страницы вот так:

[Setup]
AppName=DisksInfo
VersionInfoVersion=5.0
AppVerName=DisksInfo
DefaultDirName={pf}\Path
DefaultGroupName=Default

[Icons]
Name: {group}\Notepad; Filename: notepad.exe


[Code]
var
NewGroupPage: TWizardPage;

function ShouldSkipPage(PageID: Integer): Boolean;
begin
Result := PageID = wpSelectProgramGroup;
end;

function CreateNewGroupPage(const AfterPageID: Integer): TWizardPage;
begin
Result := CreateCustomPage(AfterPageID, SetupMessage(msgWizardSelectProgramGroup), SetupMessage(msgSelectStartMenuFolderDesc));
with WizardForm do
begin
SelectGroupBitmapImage.Parent := Result.Surface;
SelectStartMenuFolderLabel.Parent := Result.Surface;
SelectStartMenuFolderBrowseLabel.Parent := Result.Surface;
GroupEdit.Parent := Result.Surface;
GroupBrowseButton.Parent := Result.Surface;
NoIconsCheck.Parent := Result.Surface;
end;
end;

procedure InitializeWizard();
begin
NewGroupPage := CreateNewGroupPage(wpWelcome);
end;

procedure CurPageChanged(CurPageID: Integer);
begin
case CurPageID of
NewGroupPage.ID: MsgBox('We are on Select Start Folder Page', mbInformation, MB_OK);
wpSelectDir: MsgBox('We are on Select Dir Page', mbInformation, MB_OK);
end;
end;


но если настаиваешь на том чтоб именно поменять то вот тебе пример как поменять страницы выбора директории установки и страницу выбора компонентов местами
автор этого кода Добров:

[Setup]
AppName=My program
AppVerName=My program 1.5
DefaultDirName={pf}\My program
;DisableDirPage=True

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

[Components]
Name: WB; Description: 'Мой компьютер' - Настройки; ExtraDiskSpaceRequired: 1048576

[Code]
function OnShouldSkipPage(Sender: TWizardPage): Boolean;
begin
if WizardForm.ComponentsList.Items.Count > 0 then WizardForm.Tag:= 1; // отображаются страницы выбора папки и компонентов
end;

Procedure CurPageChanged(CurPageID: Integer);
Begin
Case CurPageID of
wpSelectDir: if WizardForm.Tag = 1 then
begin
WizardForm.SelectDirPage.Notebook.ActivePage:= WizardForm.SelectComponentsPage;
WizardForm.PageNameLabel.Caption:= SetupMessage(msgWizardSelectComponents)
WizardForm.Hint:= WizardForm.PageDescriptionLabel.Caption; // запомнить SetupMessage(msgSelectDirDesc)
WizardForm.PageDescriptionLabel.Caption:= SetupMessage(msgSelectComponentsDesc)
end;
wpSelectComponents: if WizardForm.Tag = 1 then
begin
WizardForm.SelectComponentsPage.Notebook.ActivePage:= WizardForm.SelectDirPage;
WizardForm.DiskSpaceLabel.Caption:= WizardForm.ComponentsDiskSpaceLabel.Caption;
WizardForm.PageNameLabel.Caption:= SetupMessage(msgWizardSelectDir)
WizardForm.PageDescriptionLabel.Caption:= WizardForm.Hint // иначе вместо названия программы [name]
end;
end;
End;

Procedure InitializeWizard;
Begin
PageFromID(wpSelectDir).OnShouldSkipPage:= @OnShouldSkipPage
end;


=====================================================================

cliff99, фриарками не увлекаюсь. Помочь не могу :(
как все утверждают »
К таковым не отношусь. Как фанат халфы добавлю: мод в ***** тк отсебятина и тем самым поганит шедевр. На Аликс смотреть страшно :diablo:

cliff99
27-02-2013, 15:48
Johny777,
Я в свою очередь как фанат халвы скажу.
Всё в моде опционально. От выбора моделей аликс. до выбора остальных моделей и карт.
А играть в стандартную Hl2 c чахлыми текстурами как то не охота.
Прошу простить за оффтоп.
А мой вопрос остаётся открытым.

TERMINAL
27-02-2013, 16:07
Подскажите, стоит метод сжатия Compression=lzma2/max, но почему то сжатия нет.

Gnom_aka_Lexander
27-02-2013, 16:17
TERMINAL, ну, во первых есть более высокие уровни - ultra, ultra64, есть еще непрерывное сжатие - SolidComression=yes - вроде так. Ну и во вторых бывают просто несжимаемые данные.




© OSzone.net 2001-2012