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

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

Автор: NumberI
Дата сообщения: 06.09.2011 18:22
подскажите, как уместить 5 полей на странице или добавить скролл?
Автор: tyumenik
Дата сообщения: 06.09.2011 23:23
Как сделать TComboBox на странице SelectDir?
Автор: Begun999
Дата сообщения: 07.09.2011 00:10
Nukloud
Большое спасибо!
Автор: Karbid87
Дата сообщения: 07.09.2011 14:16
Здравствуйте, не будет ли у кого скрипта-закоса под R.G. Catalyst, с прозрачностью, лого, временем прошедшим с начала установки и оставшимся временем до конца установки. Буду очень благодарен, если кто-нибудь поделится.
P.S. На 84 странице не последняя версия их скрипта. Мне бы хотелось последнюю. И там почему то у меня не работает лого и картинка проверки места на жестком диске вообще отсутствует (должна быть зеленая или красная галка).
Автор: jonikDk
Дата сообщения: 07.09.2011 14:23
Есть dll собранная с пакетами в Delphi. В InnoSetup она описана вместе со всеми библиотеками, которые она использует. Так вот не могу вызвать функци. из этой dll в функции function InitializeSetup(): Boolean
в других функциях, например function NextButtonClick(aCurPageID: integer): boolean;
вызываю и все работает.
Ошибка Could not Proc.
Dll собираю без пакетов, все нормльно работает.
Так вот хотелось бы использовать первый вариант (dll c пакетами), у кого то получалось ?
Автор: qwerqwer444
Дата сообщения: 07.09.2011 14:46
имеется вопрос как заставить инно писать в файл настройки программы по типу ini файла?
например прога хранит настройки в каком нибудь файле собственного формата типо .dat или .txt как при установке заставить inno писать туда например выбор папки установки или ещё что либо. и можно ли вообще так сделать?
Автор: SotM
Дата сообщения: 07.09.2011 15:06
jonikDk
О_о телепаты в отпуске! Выложи скрипт хотя бы для начала.

qwerqwer444
Можно. Поиск рулит.
Автор: jonikDk
Дата сообщения: 07.09.2011 15:18
SotM
а чего выкладывать то ?

function InitializeSetup(): Boolean;
begin
if CheckFunction('Условие') > 0 then
begin
MsgBox(ExpandConstant('{cm:msgInstallTerminated}'), mbError, MB_OK);
Result := False;
end
else
Result := True;
end;

Функция описана след образом:
function CheckFunction((aParam: PChar): integer;
external CheckFunctiond@files:Имя.dll, DBRTL100.BPL,RTL100.BPL,RXCTL10.BPL, jcl10.bpl,vcljpg100.bpl stdcall delayload';


Автор: Brabusdark
Дата сообщения: 07.09.2011 16:24
народ повторяю свой вопрос -
http://rghost.ru/20568291
в конце пишет не найдено ни одного файла указанного для isarcextract
и ничего не устанавливает
что это может быть?
Автор: NumberI
Дата сообщения: 07.09.2011 16:32
возможно ли исходя из списка компонентов и типов в ini файле распределять разные задачи-компоненты по типам при инсталлировании?

дайте ссылку, пример, где происходит работа с ини файлом
Автор: insombia
Дата сообщения: 07.09.2011 18:22

Цитата:
народ повторяю свой вопрос -
http://rghost.ru/20568291
в конце пишет не найдено ни одного файла указанного для isarcextract
и ничего не устанавливает
что это может быть?

if not ISArcExtract ( 0, 100, ExpandConstant('{src}\*.bin'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
здесь укажи место положения архива
Автор: nik1967
Дата сообщения: 07.09.2011 19:40
del


Автор: R3Pa4eK
Дата сообщения: 07.09.2011 20:24

Цитата:
Здравствуйте, не будет ли у кого скрипта-закоса под R.G. Catalyst

Вы задрали! Мне уже всю личку заспамили. Если нужны закосы - ПИШИТЕ ИХ САМИ! Не нужно доставать других людей!
Автор: qwerqwer444
Дата сообщения: 07.09.2011 20:28
SotM
не всегда, потому что односложно сформулировать некоторые вопросы нереально в поиске.
тем более когда за топиками не следишь ежедневно никак не найти нужное.
если вас не затруднит не дадите ссылочку на тему.
Автор: crysis1830
Дата сообщения: 07.09.2011 22:29
привет всем мне нужно изменить названия архива после компиляции рядом с инсталлятором архивы с названием setup-1a.bin можно ли их переименовать


помогите пожалуйста
Автор: moonlight82
Дата сообщения: 08.09.2011 00:01

Цитата:
Здравствуйте, не будет ли у кого скрипта-закоса под R.G. Catalyst

Зачем он тебе?
Автор: Karbid87
Дата сообщения: 08.09.2011 06:09

Цитата:
moonlight82
Цитата: Здравствуйте, не будет ли у кого скрипта-закоса под R.G. Catalyst

Зачем он тебе?

Как бы не хочется захламлять тему своими вопросами что и как сделать. А на хорошем скрипте (качественно программно выполненном и графически тоже) взять и разобраться самому. Да и к тому же всегда хотелось посмотреть как у них многие вещи в скрипте прописаны.
Автор: tyumenik
Дата сообщения: 08.09.2011 09:59
Добрый день, всем... Как сделать???
Автор: nik1967
Дата сообщения: 08.09.2011 11:05
Karbid87

Цитата:
Да и к тому же всегда хотелось посмотреть как у них многие вещи в скрипте прописаны.

Чтобы это посмотреть, нужен оригинальный скрипт, который тебе никто не даст, в том числе и я. У Gnom3 есть очень хороший закос, но у него сделано совсем по другому, и я не знаю, захочет ли он его выкладывать в паблик.
Автор: Karbid87
Дата сообщения: 08.09.2011 11:21

Цитата:
У Gnom3 есть очень хороший закос, но у него сделано совсем по другому, и я не знаю, захочет ли он его выкладывать в паблик.

Так а зачем в паблик? Мне только в ЛС. А я уже обещаю, что он не уйдет в паблик.
Автор: ShadowHawk
Дата сообщения: 08.09.2011 14:18
В общем ответов не дождался на свои 2 вопроса, но еще надеюсь!
Но решил таки задачку частично.

Есть еще вопросики, так сказать для оптимизации кода:

1.
Я создаю массив и заполняю его:

[more]
...
#define countIb 98

#dim ib[countIb]
#define ib[0] "IB1"
#define ib[1] "IB2"
...
#define ib[97] "IB98"
...

#define countExt 12
#dim ext[countExt]
#define ext[0] ".ex1"
#define ext[1] ".ex2"
...
#define ext[1] ".ex12"
...

[/more]
В 1. не нравится заниматься поэлементным присвоением в массиве


2.
Тот же вопрос, только про секцию [Components]:

[more]
...
[Components]
#sub AddOsnBaseC
#define path = AddBackslash(AddBackslash(SourcePath) + "Source\" + osn_base + "\BASE\" + ib[i])
#if FileExists(path+ib[i]+ext[0])+FileExists(path+ib[i]+ext[1])+FileExists(path+ib[i]+ext[2])+FileExists(path+ib[i]+ext[3])+FileExists(path+ib[i]+ext[4])+FileExists(path+ib[i]+ext[5])+FileExists(path+ib[i]+ext[6])+FileExists(path+ib[i]+ext[7])+FileExists(path+ib[i]+ext[8])+FileExists(path+ib[i]+ext[9])+FileExists(path+ib[i]+ext[10])+FileExists(path+ib[i]+ext[11])
Name: Structure\ib\osn\{#ib[i]}; Description: {#ib[i]}; Types: full osn
#endif
#endsub
...
#for {i = 0; i < countIb; i++} AddOsnBaseC
...
[/more]

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

Как эти блоки записать покрасивше, покомпактнее?

Заранее спасибо!
Надеюсь на этот раз знатоки освободятся и на меня трохи времени потратят
Автор: YURSHAT
Дата сообщения: 08.09.2011 16:00
Karbid87

Цитата:
А на хорошем скрипте (качественно программно выполненном и графически тоже) взять и разобраться самому.

Я инсталлы каталистов не видел (даже на скринах). Но учитывая, что его не выложили в паблик и если его писал Ник, ты в том скрипте врядли разберешся...

Цитата:
Да и к тому же всегда хотелось посмотреть как у них многие вещи в скрипте прописаны.

А какая разница, как прописано? Сделай визуально идентично но пропиши по своему. Возможно ты пропишешь это еще лучше чем в оригинале. (
Мы вот тоже когда-то ломали голову, как же Blackself эту панельку замутил, а вот сейчас смотришь и смешно становится...

Цитата:
Как бы не хочется захламлять тему своими вопросами что и как сделать.

Тема для этого собственно и сделана. Намного хуже если ты будешь ее захламлять прозьбами скинуть оригинал. Покажи скрины или опиши, что там такого уникального в их скриптах, а мы расскажем как сделать так же.
Автор: qwerqwer444
Дата сообщения: 08.09.2011 16:03
помогите с кодом надо чтобы inno писала в середину файла настроек программы
[Code]
procedure CurStepChanged(CurStep: TSetupStep);
var
S: TArrayOfString;
F: String;
begin
F := ExpandConstant('{app}\file.dat');
SetArrayLength(S, 4);
S[00] := ''
S[01] := 'ExpandConstant('{app}\file.dat')'
S[02] := ''
SaveStringsToFile(F, S, True);
end;
пишет только в конец файла
Автор: meekrab
Дата сообщения: 08.09.2011 17:22
YURSHAT
Привет. Давно что то тебя не видел или сам тут давно не был )
Насчет панельки были времена ) И много чего другого.
А инстале от Каталистов нет него сложного. Да и закасов под них аля GOG вполне хватает.
Автор: Karbid87
Дата сообщения: 08.09.2011 19:22
Хорошо. Тогда первый вопрос.
Есть скрипт с прозрачностью, как наложить внизу (координаты я вычислю) лого? В самом скрипте нигде не встречается упоминание о картинке с лого, поэтому бессмысленно выкладывать какие то кусочки скрипта. Подскажите в каких секциях и что дописать, и куда какие файлы кинуть, чтобы появился лого? Как понимаю нужно будет еще качать ISLogo.dll
Вот скрин с выделенной областью куда надо лого вставить
Автор: ShadowHawk
Дата сообщения: 08.09.2011 23:30
qwerqwer444

В какое место необходимо записывать?

Правильно ли я понимаю - тебе нужно в существующий файл внести изменения,
или он может и не существовать?
Если верно первое то я не вижу у тебя в коде ГДЕ ты считываешь данные из своего файла.
И второй момент а как ты определяешь в КАКУЮ строку нужно внести изменения?
Середина так сказать может быть разной зависит от четного/нечетного количества строк! либо ты знаешь непосредственно номер строки, либо значение которое необходимо заменить.

Вот пример с определенной строкой и заметь индексы строк идет ни как у тебя [00] [01] и т.д., а [0] [1] и т.д., а в функции SaveStringsToFile третий параметр False:

[more]
procedure CurStepChanged(CurStep: TSetupStep);
var
S: TArrayOfString;
F: String;
begin
F := ExpandConstant('{app}\file.dat');
LoadStringsFromFile(F, S);
S[1]:='ExpandConstant('{app}\file.dat')'
SaveStringsToFile(F, S, False);
end;
[/more]

Это работает если ты точно знаешь что у тебя есть и файл и строка с индексом 1

может поможет
Автор: qwerqwer444
Дата сообщения: 09.09.2011 00:51
ShadowHawk
спасибо попробую. я как раз точно знаю что у меня есть и файл и номер строчки
P.S.
файл устанавливается вместе с прогой
просто для проги надо писать директории в свой файл вместо реестра.(что то типо ini)
но помимо этих строк с директориями там ещё есть строчки с настройками и вот чтобы их не стирать и не переписывать все, а только строчку куда установится прога то есть {app}.
Автор: DeKaNszn
Дата сообщения: 09.09.2011 02:15
qwerqwer444
а из [more=хелпа]
Цитата:
INI File functions

function IniKeyExists(const Section, Key, Filename: String): Boolean;
function IsIniSectionEmpty(const Section, Filename: String): Boolean;

function GetIniBool(const Section, Key: String; const Default: Boolean; const Filename: String): Boolean
function GetIniInt(const Section, Key: String; const Default, Min, Max: Longint; const Filename: String): Longint;
function GetIniString(const Section, Key, Default, Filename: String): String;

function SetIniBool(const Section, Key: String; const Value: Boolean; const Filename: String): Boolean;
function SetIniInt(const Section, Key: String; const Value: Longint; const Filename: String): Boolean;
function SetIniString(const Section, Key, Value, Filename: String): Boolean;

procedure DeleteIniSection(const Section, Filename: String);
procedure DeleteIniEntry(const Section, Key, Filename: String);
[/more] не подходят в таком случае?
Автор: qwerqwer444
Дата сообщения: 09.09.2011 02:59
DeKaNszn
хелп я читал
так дело в том что у меня не ini а собственный файл программы с расширением .dat
на самом деле это обычный текстовый файл если открыть блокнотом но там нет такой структуры как в ini а просто строчки.
в принципе я сделал работает всё только весь файл переписывает
а мне бы хотелось конкретную строчку
Автор: DeKaNszn
Дата сообщения: 09.09.2011 09:10
qwerqwer444
тогда этими

Цитата:
function LoadStringFromFile(const FileName: String; var S: AnsiString): Boolean;
function StringChangeEx(var S: String; const FromStr, ToStr: String; const SupportDBCS: Boolean): Integer;
function SaveStringToFile(const FileName: String; const S: AnsiString; const Append: Boolean): Boolean;

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177

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


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