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

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

Автор: CapsLosk
Дата сообщения: 08.02.2007 03:55
Как осуществить чтото типа этого?


BackgroundBitmapImage := TBitmapImage.Create(MainForm);
with BackgroundBitmapImage do
begin
Left := (MainForm.Width - BackgroundImage.Width) / 2;
Top := (MainForm.Height - BackgroundImage.Height) / 2;
AutoSize := True;
//Center := True;
Parent := MainForm;
Visible := False; // все подготовили, но скрыли.
Tag:= 0;
end;
end;

т.е высчитать положение рисунка на форме (в денном случае по центру) - но это не работает. Подскажите ктто нить

Добавлено:
ВСЕ, СДЕЛАЛ!!!
Автор: omals
Дата сообщения: 08.02.2007 08:16
2 maxdddca123
используй
function Pos(SubStr, S: String): Integer;
Description:
Searches for Substr within S and returns an integer value that is the index of the first character of Substr within S.
If Substr is not found, Pos returns zero.

но если там строк больше 1, то LoadStringsFromFile а не LoadStringFromFile
Автор: CapsLosk
Дата сообщения: 08.02.2007 10:08
NightW0lf

Цитата:
CapsLosk
А ты пробывал их (My program1 - 700 мег, My program2 - 1,5 гиг) в архив сжать (БЕЗ сжатия) и разбить инсталлятор на части по 600 мегабайт??

Добавлено:
CapsLosk
Вот попробуй еще один пример с компонентами (2 типа; 1 - 700mb, 2 - 1.5gb)
Пример


Кстате в твоем примере - один фиг если я выбираю me program 2, то всеравно после того ка он пролистает 1. Даже без упаковки за счет того что файл большой тупняк присутствует!!!
Автор: NightW0lf
Дата сообщения: 08.02.2007 11:55
CapsLosk

Цитата:
Кстате в твоем примере - один фиг если я выбираю me program 2, то всеравно после того ка он пролистает 1. Даже без упаковки за счет того что файл большой тупняк присутствует!!!

Я проверял все работает 1 компанент весил - 700 мб, 2 - 1,5 гб я их поочереди ставил - ВСЕ работает.

Скинь весь код в личку посматрю что и как у тебя.
Автор: maxdddca123
Дата сообщения: 08.02.2007 15:25
omals
Да у меня и с LoadStringFromFile получилось всё, просто я не вижу ранницы особой ? Слово которое я ищу может находится где угодно, в чём тогда приемущество использования LoadStringSFromFile ???
Автор: CapsLosk
Дата сообщения: 09.02.2007 01:31
NightW0lf
в твоем скрипте есть такое:

{ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * }
{ * * * * * * * * * * * * * * * * * [Кнопка создать новую папку в при выборе директории установки] * * * * * * * * * * }
{ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * }
procedure DirOnClick(Sender: TObject);
var
res: Boolean;
UserSelectDir: string;
begin
UserSelectDir := WizardForm.DirEdit.Text;
res := BrowseForFolder('Выберите папку из списка и нажмите «ОК»', UserSelectDir, True);
if res then
begin
WizardForm.DirEdit.Text := UserSelectDir;
end;
end;
{ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * }
{ * * * * * * * * * * * * * * * * * [Кнопка создать новую папку в при выборе директории установки] * * * * * * * * * * }
{ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * }

А где сама кнопка то - создать новую папку?

Добавлено:
NightW0lf

И скинь пожалуйсто примерчик на тему установки по выбору
my program1
my program2
а то я чето с твоего скрипта ниче не понял....
Автор: CapsLosk
Дата сообщения: 09.02.2007 08:35
надо вот так:

procedure DirOnClick(Sender: TObject);
var
res: Boolean;
UserSelectDir: String;
begin
UserSelectDir:= WizardForm.DirEdit.Text;
res:= BrowseForFolder('Выберите папку из списка и нажмите «ОК»', UserSelectDir, True);
if res then
begin
WizardForm.DirEdit.Text:= UserSelectDir;
end;
end;

procedure InitializeWizard();
begin
WizardForm.DirBrowseButton.OnClick:= @DirOnClick;
end;
Автор: NightW0lf
Дата сообщения: 09.02.2007 14:47
CapsLosk

Цитата:
надо вот так:

Я знаю просто когда код перестраивал потерял:

Код:
[code]
procedure InitializeWizard();
begin
WizardForm.DirBrowseButton.OnClick:= @DirOnClick;
end;
Автор: DocBeen
Дата сообщения: 09.02.2007 20:49
Коллеги - помоги пожалуйста - есть такая проблемка и пока додуматься не получается...

В инно надо сделать инсталятор - такой чтоб можно было в процессе установки - выбирать тип установки ( к примеру - "Полная, Сервер или выборочная")

как можно в Инно все это реализовать?
Автор: NightW0lf
Дата сообщения: 09.02.2007 22:29
DocBeen
Посмотри в папке Examples в каталоге гдепроинстален у тебя Inno Setup 5
[more=Или вот пример]

Код:
[code]
[Setup]
AppName=My Program
AppVerName=My Program version 1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
UninstallDisplayIcon={app}\MyProg.exe
OutputDir=userdocs:Inno Setup Examples Output

[Types]
Name: "full"; Description: "Full installation"
Name: "compact"; Description: "Compact installation"
Name: "custom"; Description: "Custom installation"; Flags: iscustom

[Components]
Name: "program"; Description: "Program Files"; Types: full compact custom; Flags: fixed
Name: "help"; Description: "Help File"; Types: full
Name: "readme"; Description: "Readme File"; Types: full
Name: "readme\en"; Description: "English"; Flags: exclusive
Name: "readme\de"; Description: "German"; Flags: exclusive

[Files]
Source: "MyProg.exe"; DestDir: "{app}"; Components: program
Source: "MyProg.chm"; DestDir: "{app}"; Components: help
Source: "Readme.txt"; DestDir: "{app}"; Components: readme\en; Flags: isreadme
Source: "Readme-German.txt"; DestName: "Liesmich.txt"; DestDir: "{app}"; Components: readme\de; Flags: isreadme

[Icons]
Name: "{group}\My Program"; Filename: "{app}\MyProg.exe"
Автор: feanor_ka
Дата сообщения: 10.02.2007 21:58
Столкнулся с проблемой,
нужно нарисовать логотип и по щелчку открыть соответствующий сайт

BitmapFileName := ExpandConstant('{tmp}\Logo.bmp');
ExtractTemporaryFile(ExtractFileName(BitmapFileName));

BitmapImage1 := TBitmapImage.Create(Page);
with BitmapImage1 do
begin
Top := ScaleY(125);
Parent := Page.Surface;
AutoSize := True;
Bitmap.LoadFromFile(BitmapFileName);
end;


Проблема в том, что у битмапа нет евента OnClick. Что можно сделать?
Автор: YurikWiz
Дата сообщения: 11.02.2007 05:59
Дайте ссылку на русификатор для
Цитата:
ScriptMaker для Inno Setup

Из шапки ничего слить не получается
Автор: CapsLosk
Дата сообщения: 12.02.2007 04:39
NightW0lf

Цитата:
Лучше ты скинь мне весь свой пример в личку.


Ну хотябы вот мой пример:




[Setup]
AppName=Max Payne
AppVerName=Max Payne
DefaultDirName={pf}\MMax Payne
DefaultGroupName=Max Payne
OutputBaseFilename=setup
Compression=lzma
SolidCompression=true
DiskSpanning=true
DiskSliceSize=730000000
InternalCompressLevel=none

[Components]
Name: first; Description: Max Payne
Name: second; Description: Max Payne 2

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

[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked

[Files]
Source: Max Payne\*; Components: first; DestDir: {app}\BMP; Flags: nocompression ignoreversion createallsubdirs recursesubdirs
Source: Max Payne 2\*; Components: second; DestDir: {app}\GIF; Flags: ignoreversion recursesubdirs createallsubdirs nocompression

///////////////////////////////////////////////////////////////////////////////////////////////////////
Если я выбираю Max PAYNE 2, то происходит тупнячек, а именно сначало просматривается Max Payne, а уж когда его прошерстит, только потом наченается установка!!!
Автор: NightW0lf
Дата сообщения: 12.02.2007 17:23
CapsLosk
Проверил я твой код - у меня все работает нормально.

Name: first; - я использовал 1 ГБ
Name: second; - я использовал 2 ГБ

А ты случайно там всякие патчи файла Setup.e32 не использовал? Если - да то наверно в них и есть причина, т.к. у меня ВСЕ работает нормально.

Автор: maxdddca123
Дата сообщения: 12.02.2007 17:38
Народ, подскажите где можно посмотреть примерчик, как в зависимости от версии винды (ХР, 98) запустить на выполнение тот или оний файл в секции RUN ???
Автор: Midway
Дата сообщения: 12.02.2007 20:12
YurikWiz
держите...
Автор: CapsLosk
Дата сообщения: 13.02.2007 03:08
NightW0lf

Цитата:
А ты случайно там всякие патчи файла Setup.e32 не использовал? Если - да то наверно в них и есть причина, т.к. у меня ВСЕ работает нормально.


Нет не использовал.....явоще не любитель всяких падчей в Inno

Может быть еще такой вариант - если в первой программе много мелких файлов, то процесс перебора затягивается, если несколько больших, то естественно быстрее
Автор: EagleSH
Дата сообщения: 13.02.2007 09:29
CapsLosk
так и есть... самого бесил инно такой тупостью

решение: просто отсортируй файлы в скрипте типа компонент одного, компонент другого ну и т.д., одного, другого, одного, другого... по логике - не будет шерстить - но установка по времени увеличится.
Автор: CapsLosk
Дата сообщения: 13.02.2007 09:50
EagleSH

Цитата:
решение: просто отсортируй файлы в скрипте типа компонент одного, компонент другого ну и т.д., одного, другого, одного, другого... по логике - не будет шерстить - но установка по времени увеличится.


Всмысле указать не просто папку а все файлы в ней???

Добавлено:
и перемешать?

Добавлено:
По логике это конечно выход, но запаришся перечислять.....
Автор: NightW0lf
Дата сообщения: 13.02.2007 11:02
CapsLosk
А попробуй обе папки сжать в 2 SFX архива 7Zip (Без сжатия), а так же свяжи их с компанентам и есди будет выбранно из двух то будет запускаться рапаковка файлов.
Должно вроде помочь.
Автор: omals
Дата сообщения: 13.02.2007 12:21
2 maxdddca123
ну шото такое

[Run]
;; для win 2000 или выше
Filename: "myProgram.exe"; Check: (ISWin2kOrLater);
;; для win версии меньше 2к
Filename: "myProgram_1.exe"; Check: (not ISWin2kOrLater);


[Code]
function ISWin2kOrLater(): boolean;
begin
Result:= False;
if (GetWindowsVersion >= $05000893) then Result:= True;
end;
Автор: Dima555555
Дата сообщения: 13.02.2007 13:46
народ чтот не догоню как для установки проги сделать галочку типо Создать ярлык на робочем столе и т.д. только не эту а Запускать вместе с Windows << как это там написать и чтоб это работало а.. ? не доганю

Добавлено:
при добавлении в код

[Tasks]
Name: autostart; Description: {cm:CreateAutoRun}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked

ошибка Line 27 A custom message named "CreateAutoRun" has not been defined.

помогите...

Добавлено:
Нада чтоб программа прописывалась в реестр для автозапуска и при установке стояла галочка Запускать вместе с Windows ...
Автор: NikodimS
Дата сообщения: 13.02.2007 14:59
Приветствую.
Необходима Ваша помощь.
Суть проблемы заключается вот в чем:
нужно сделать установочный файл который сначала копирует нужную dll в папку {app}
потом запускает именно из ЭТОГО ФАЙЛА функцию, потом уже после успешной ее отработки копирует остальные файлы.
Все сделано и работает кроме следующего, почему то скрипт вызывает функцию из dll, которую он поместил во временную папку windows, а не из dll, которую он скопировал в {app}, это никак не удается излечить.

Даже вот таким кодом(ниже), который напрямую прописывает из какой dll нужно запустить функцию проблему решить не удается, она по-прежнему берется из dll,создаваемой во временной папке windows:

procedure nRun();
var
Handle: Integer;
ErrorCode: Integer;
iUpdated: Integer;
begin
//bUpdate := bUpdateBase();
Handle := LoadDLL('c:\azs\up702123.dll',ErrorCode);
if Handle <> 0 then begin
if not CallDLLProc(Handle,'UPDATEBASE', 1,1, iUpdated) then
MsgBox('Функция вызвана неправильно.', mbError, MB_OK)
else begin
if iUpdated <> 0 then bUpdate := True
else bUpdate := False;
end;
FreeDLL(Handle);
end;
bnRunStarted := True;
end;


Посоветуйте, как быть? может это баг? или надо галочку где-нибудь снять.
Автор: omals
Дата сообщения: 13.02.2007 16:09
2 NikodimS

можно попробовать приблизительно вот так используя
Rundll command line
The command line for Rundll is as follows: RUNDLL.EXE <dllname>,<entrypoint> <optional arguments>

function RunMyDLL(S:String): String;
var
ExeF, tmpStr, PWorkDir: STRING;
er: boolean;
ResultCode: Integer;
begin
ExeF:='Rundll32.exe';
tmpStr:=ExpandConstant('{app}')+'\myDLL.dll';
PWorkDir:= ExpandConstant('{app}');
tmpStr:='"' + tmpStr + '",MyFunctionName" + "ParamerForThisFunction1" + "ParamerForThisFunction2"' + '"';
er:= Exec(ExeF, tmpStr, PWorkDir, SW_HIDE, ewWaitUntilTerminated, ResultCode);
end;

там правда нужно поиграть с правильным формированием строки tmpStr
но ето уже дело техники и за несколько попыток мона сделать (я думаю .
Автор: NikodimS
Дата сообщения: 13.02.2007 16:54
Спасибо,попробую, завтра доложусь
Автор: Dima555555
Дата сообщения: 13.02.2007 17:45
ну а мне то кто поможет ? как сделать чтоб при установки можно было выбрать загружать приложение вместе с Windows ?
Автор: NightW0lf
Дата сообщения: 13.02.2007 21:18
Dima555555

Цитата:
ну а мне то кто поможет ? как сделать чтоб при установки можно было выбрать загружать приложение вместе с Windows ?

Попробуй - сам не пробывал из хелпа вычитал.

Код:
[Icons]
Name: {userstartup}\Program3; Filename: {app}\program3\program3.exe; Tasks: startup

[Tasks]
Name: startup; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}
Автор: Jeff_Trust
Дата сообщения: 13.02.2007 22:18
Sero
Привет, ты мне уже помогал как-то растянуть изображение WizImage на все окно инсталлятора, не поможешь ли еще сделать чтобы корректно отображалась надпись приветствия?

Если просто поменять значения

WizardForm.WelcomeLabel1.Visible:=False;
WizardForm.WelcomeLabel2.Visible:=False;

на

WizardForm.WelcomeLabel1.Visible:=True;
WizardForm.WelcomeLabel2.Visible:=True;

то надписи появляються но под ними появляеться белый прямоугольник под их размер.
А мне надо чтобы они просто накладывались поверх картинки.
Вот образец как надо

http://taverna.ifolder.ru/1113928

PS Заранее спасибо за помощь

Автор: Sampron
Дата сообщения: 13.02.2007 23:41
Jeff_Trust

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

Забудь в инно пока нет такой функции как Transparent.
Автор: CapsLosk
Дата сообщения: 14.02.2007 03:52
Ладно....по выборочной установке, я так понимаю, ничего путевого не нашел!!!

Вопрос 2:
размер шрифта на фоновом окне можно сделать так:

[LangOptions]
TitleFontSize=26

А как можно изменить его цвет?????

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172

Предыдущая тема: ICONS


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