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

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

Автор: NightW0lf
Дата сообщения: 09.01.2007 19:02
Chanka

Цитата:

1. Кидаете этот фаил в папку с инсталлятором
2. Собираете ваш инсталлятор и рядом с ним кладёте папку Res в неё кладёте файлы:
Главная картинка в 4 разрешениях: 1600.jpg, 1280.jpg, 1024.jpg, 800.jpg и фаил с разрешением 640 на 480 под кодовым названием setup.jpg
3 Фаил Cycle.bin обычный текстовый фаил, где указываете, сколько картинок должно показаться пока устанавливается ваша программа. Например
1.jpg
2.jpg
3.jpg
Эти файлы тоже, разумеется, должны находится в этой папке.

Что-то неработает!
Автор: Genri
Дата сообщения: 09.01.2007 19:15
NightW0lf -- а где у тебя папка Res находится? Рядом с setup.exe ? Странно, что у меня даже без инструкций заработало, а у тебя и с инструкцией не работает.
Автор: Chanka
Дата сообщения: 09.01.2007 19:16
Genri,

У меня он тогда был. Я хотел её выложить, но вспомнил обещание, которое дал НИКОМУ! И если бы я её выложил сразу бы стало ясно, кто это сделал. Потому что там кое-что есть чего нет в той версии, которую ты собрал. Надеюсь понятно объяснил.
А насчёт выходных я было уже хотел нарушить обещание, но вспомнил о маге и волшебнике Genri Да и инет у меня сейчас такой может токо принимать.

Добавлено:
Genri,
Я у тебя уже спрашивал, как сделать, чтобы картинка не растягивалась, а находилась по центру. Как это же сделать в этой конструкции которую ты сегодня делал?

И вот у меня есть пример создания на новой странице картинки. Можно сделать, чтобы она jpg принимала, а не bmp?


procedure CreateTheWizardPages;
var
Page: TWizardPage;
BitmapImage: TBitmapImage;
begin
Page:=CreateCustomPage(wpWelcome, 'Добро пожаловать в программу установки игры', '"GAME"');
BitmapImage:=TBitmapImage.Create(Page);
with BitmapImage do
begin
try
Bitmap.LoadFromFile(expandConstant('{src}\Res\Logo.bmp'));
Stretch:=True;
Left:=3*BitmapImage.Width - 285;
Height:=4*BitmapImage.Height - 200;
Width:=4*BitmapImage.Width - 60;
Parent:=Page.Surface;
except
end;
end;
end;

procedure InitializeWizard();
begin
CreateTheWizardPages;
end;
Автор: NightW0lf
Дата сообщения: 09.01.2007 20:45
Genri
Я папку Res и в директорию InnoSetup и рядом с своим setup.exe размещал и не работает!
Содержание моей папки "Res" и файла "Cycle.bin"
Автор: Chanka
Дата сообщения: 09.01.2007 21:06
NightW0lf,

А что именно не работает? Картинки не меняются?
Автор: NightW0lf
Дата сообщения: 09.01.2007 21:40
Chanka

Цитата:
windowvisible=yes

Спасибо работает!
А зачем нужна тогда фаил с разрешением 640 на 480 с названием "setup.jpg"?
Автор: Chanka
Дата сообщения: 09.01.2007 22:00
В играх от 1c он всегда присутствует. значит, значение имеет
Автор: NightW0lf
Дата сообщения: 09.01.2007 22:04
Chanka
Файл с разрешением 640 на 480 с названием "setup.jpg" я так понял должен появлятся и исчезать перед началом установки, если "да" то это у меня не работает.
Автор: Genri
Дата сообщения: 10.01.2007 00:02
Chanka
Цитата:
Надеюсь понятно объяснил
-- да. я понял. твое слово имеет ограниченный срок действия. :-\


Цитата:
как сделать, чтобы картинка не растягивалась, а находилась по центру. Как это же сделать в этой конструкции которую ты сегодня делал?
-- ну выстави свойства Image1 и перекомпили. Я же исходник тебе дал.

NightW0lf
Цитата:
Файл с разрешением 640 на 480 с названием "setup.jpg" я так понял должен появлятся и исчезать перед началом установки, если "да" то это у меня не работает.
-- нет. при запуске, проверяется установленное разрешение по горизонтали. И далее:
если 1600 или больше, в качестве фона ставится 1600.jpg;
если 1280 или больше, в качестве фона ставится 1280.jpg;
если 1024 или больше, в качестве фона ставится 1024.jpg;
если 800 или больше, в качестве фона ставится 800.jpg;
ну а если ничего не подошло, в качестве фона ставится setup.jpg (вряд ли у кого-нибудь разрешение еще меньше чем 640х480) Ну а меняться картинки начинают только когда пошел сам процесс инсталляции.

Автор: Sampron
Дата сообщения: 10.01.2007 00:27
Хм, неплохо сделали но для слайд-шоу желательно бы таймер а то слишком быстрый просмотр картинок.
Автор: Genri
Дата сообщения: 10.01.2007 00:53
Sampron -- В данной реализации, скорость зависит от скорости установки файлов и кол-ва картинок. Зависимость примерно такая: 100 / кол-во картинок = кол-во процентов прогрес-бара на одну картинку.
Так что, если у тебя установка идет достаточно быстро, а кол-во картинок достаточно велико - будет слишком быстро.
Автор: Sampron
Дата сообщения: 10.01.2007 01:20

Цитата:
ну выстави свойства Image1 и перекомпили. Я же исходник тебе дал.

это типа здесь:
object Image1: TImage
Left = 0
Top = 0
Width = 221
Height = 187
Align = alClient
AutoSize = True
Stretch = True
end
и что нужно выставить чтобы картинка была по центру?

Добавлено:

Цитата:
Chanka
Файл с разрешением 640 на 480 с названием "setup.jpg" я так понял должен появлятся и исчезать перед началом установки, если "да" то это у меня не работает.


[Files]
Source: C:\Splash.bmp; DestDir: {tmp}; Flags: dontcopy

[Code]
var Splash : TSetupForm;
function InitializeSetup(): Boolean;
var
BitmapImage1 : TBitmapImage;
begin
Splash := CreateCustomForm;
Splash.BorderStyle := bsNone;
BitmapImage1 := TBitmapImage.Create(Splash);
with BitmapImage1 do begin
AutoSize := True;
Align := alClient;
Left := 0;
Top := 0;
Stretch := True;
Parent := Splash;
end;
ExtractTemporaryFile('Splash.bmp');
BitmapImage1.Bitmap.LoadFromFile(ExpandConstant('{tmp}')+'\Splash.bmp');
Splash.Width := BitmapImage1.Width;
Splash.Height := BitmapImage1.Height;
Splash.Center;
Splash.Show;
BitmapImage1.Refresh;
Sleep(3000); ///Время показа (здесь 3 секунды)
Result := True;
end;
procedure InitializeWizard();
begin
Splash.Close;
end;
Автор: GRom V
Дата сообщения: 10.01.2007 03:26
Извеняюсь не то!!
Автор: maxdddca123
Дата сообщения: 10.01.2007 06:44
Genri
Как добавить кнопочку Печать на страницу где отображается InfoBeforeFile ???
Автор: GRom V
Дата сообщения: 10.01.2007 07:02
Может ктонить выложить исходник пропадченой Setup.e32

Добавлено:
Genri
Если делать слайдшоу с падченым Setup.e32, то isxbb работает нормально

Ты мне както давал скрипт (слайдшоу по таймеру):

[Files]
// Копирование *.dll для демонстрации
Source: {sys}\*.dll; DestDir: {tmp}; Flags: external
Source: innocallback.dll; DestDir: {tmp}; Flags: dontcopy
Source: pic1.bmp; DestDir: {tmp}; Flags: dontcopy
Source: pic2.bmp; DestDir: {tmp}; Flags: dontcopy

[Code]
type
TProc = procedure(HandleW, msg, idEvent, TimeSys: LongWord);

var
BackgroundBitmapImage: TBitmapImage;
TimerID: LongWord;

function WrapTimerProc(callback:TProc; paramcount:integer):longword;
external 'wrapcallback@files:innocallback.dll stdcall';

function SetTimer(hWnd: LongWord; nIDEvent, uElapse: LongWord; lpTimerFunc: LongWord): LongWord;
external 'SetTimer@user32.dll stdcall';

function KillTimer(hWnd: LongWord; nIDEvent: LongWord): LongWord;
external 'KillTimer@user32.dll stdcall';


procedure InitializeWizard();
begin
ExtractTemporaryFile('pic1.bmp');
ExtractTemporaryFile('pic2.bmp');
end;


function PercentProgress(): Integer;
begin
with WizardForm.ProgressGauge do
begin
Result:= (Position-Min)/((Max - Min)/100) ;
end;
end;

procedure OnTimer(HandleW, msg, idEvent, TimeSys: LongWord);
var
percent: integer;

begin
percent:= PercentProgress;
with BackgroundBitmapImage do
begin
if ((percent > 0) and (percent < 10) and (Tag <> 1)) then
begin
Bitmap.LoadFromFile(ExpandConstant('{tmp}') + '\pic1.bmp');
Tag:= 1;
end else
if ((percent > 11) and (percent < 20) and (Tag <> 2)) then
begin
Bitmap.LoadFromFile(ExpandConstant('{tmp}') + '\pic2.bmp');
Tag:= 2;
end;
end;
end;

procedure CurPageChanged(CurPageID: Integer);
var
pfunc: LongWord;

begin
if CurPageID = wpInstalling then
begin
pfunc:= WrapTimerProc(@OnTimer, 4);
TimerID:= SetTimer(0, 0, 500, pfunc);

BackgroundBitmapImage := TBitmapImage.Create(MainForm);
with BackgroundBitmapImage do
begin
Left := 50;
Top := 100;
AutoSize := True;
Center := True;
Parent := MainForm;
Bitmap.LoadFromFile(ExpandConstant('{tmp}') + '\pic1.bmp');
Tag:= 1;
end;
end;
end;

procedure DeinitializeSetup();
begin
KillTimer(0, TimerID);
end;

Как заставить работать isxbb в этом случае?
Автор: Chanka
Дата сообщения: 10.01.2007 08:03
Genri,

Цитата:
-- да. я понял. твое слово имеет ограниченный срок действия. :-\

Нет. Я не такой. Просто хотелось поделится с народом.

Цитата:
-- ну выстави свойства Image1 и перекомпили. Я же исходник тебе дал.

А что иммено там надо выставить?

GRom V,

Цитата:
Может ктонить выложить исходник пропадченой Setup.e32

ЭТО ЗАПРЕЩЕНО. Вот тут я своё слово нарушить не могу.



Автор: Sampron
Дата сообщения: 10.01.2007 09:02
Chanka,

Цитата:
Chanka

Цитата:
А что иммено там надо выставить?

Чтобы картинка не растягивалась в слайд-шоу а была строго по центру.

Автор: Chanka
Дата сообщения: 10.01.2007 09:27
Sampron,

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

Да этого я и хочу. Вот и спрашиваю чего там надо сделать, чтобы она была по-центру.
Автор: Genri
Дата сообщения: 10.01.2007 09:33
maxdddca123

Цитата:
Как добавить кнопочку Печать на страницу где отображается InfoBeforeFile ???


Код:
[Setup]
AppName=My Program
AppVerName=My Program version 1.5
DefaultDirName={pf}\My Program
DisableProgramGroupPage=yes
InfoBeforeFile=Readme.txt

[Files]
Source: "MyProg.exe"; DestDir: "{app}"

[Code]
var
PrintButton: TButton;

procedure PrintButtonClick(Sender: TObject);
var WordpadLoc: String;
    RetCode: Integer;
begin
if MsgBox( 'Do you want to print Info to default printer ?', mbConfirmation, MB_YESNO ) = IDYES then
begin
    RegQueryStringValue( HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WORDPAD.EXE',
     '', WordpadLoc);
    StringChange( WordpadLoc, '%ProgramFiles%', ExpandConstant('{pf}') );
    StringChange( WordpadLoc, '"', '');
    ExtractTemporaryFile('Readme.txt');
    if not Exec( WordPadLoc, ' /p ' + ExpandConstant('{tmp}\Readme.txt') ,
     ExpandConstant('{tmp}'), SW_HIDE, false, RetCode ) then
     MsgBox('Problems printing Info file !' + IntToStr(RetCode), mbError, mb_Ok)
    else
     MsgBox('Problems extracting Info file !', mbError, mb_Ok);
    end;
end;

procedure CurPageChanged(CurPage: Integer);
begin
if CurPage = wpInfoBefore then
PrintButton.Visible := True
else
PrintButton.Visible := False;
end;

procedure InitializeWizard();
begin
PrintButton := TButton.Create(WizardForm);
PrintButton.Caption := '&Print Info';
PrintButton.Top := WizardForm.BackButton.Top;
PrintButton.Left := WizardForm.BackButton.Left - WizardForm.BackButton.Width - ScaleX(40);
PrintButton.OnClick := @PrintButtonClick;
PrintButton.Parent := WizardForm;
PrintButton.Visible := False;
end;
Автор: Sampron
Дата сообщения: 10.01.2007 09:42
Chanka

Цитата:
Да этого я и хочу. Вот и спрашиваю чего там надо сделать, чтобы она была по-центру.

Сам хочу:-\
Автор: Genri
Дата сообщения: 10.01.2007 10:29
Sampron Chanka
Цитата:
Чтобы картинка не растягивалась в слайд-шоу а была строго по центру.

Image1.Align:= alClient;
Image1.AutoSize:= True;
Image1.Center:= True;
Image1.Stretch:= False;
Автор: maxdddca123
Дата сообщения: 10.01.2007 10:41
Genri
Спасибо, а откуда и куда распаковывается файл readme.txt ? У меня файл лежит на флешке, в InfoBeforeFile прописан полный путь, как в таком случае надо прально прописывать в ExtractTemporaryFile ? Если я прописываю полный путь то почему то пишется что файл не найден, если пишу только имя файла - тоже самое. Как быть ? И нельзя ли сделать так, что бы при нажатии на кнопку открывалось стандартное окно печать (как в word например) ?
Автор: Chanka
Дата сообщения: 10.01.2007 11:13
Genri,

Спасиб. Вечером попробую.
Автор: Sampron
Дата сообщения: 10.01.2007 11:33
Вот ещё одна интересная реализация рисунка в верхней панели окна мастера:

[Setup]
WizardSmallImageFile=C:\SmallImage.bmp
;Здесь использован рисунок с размерами 497х58

[code]
procedure InitializeWizard();
begin
with WizardForm do begin
with MainPanel do
Height := Height - 1;
with WizardSmallBitmapImage do begin
Left := 0;
Top := 0;
Height := 58; ///Размер рисунка
Width := 497; ///
end;
with PageNameLabel do begin
Width := Width - 497; ///Поставьте здесь значения на 0 если хотите вернуть текст
Left := Left + 497; ///
end;
with PageDescriptionLabel do begin
Width := Width - 497; ///Поставьте здесь значения на 0 если хотите вернуть текст
Left := Left + 497; ///
end;
end;
end;
Автор: BAPK
Дата сообщения: 10.01.2007 12:56
Как разбить выбор дополнительных задач на две страницы? Чтобы определенные на одной находились, а остальные на другой?
Автор: XuM
Дата сообщения: 10.01.2007 13:46
народ, у кого получилось нормально прикрутить UninsHS ?
Автор: Genri
Дата сообщения: 10.01.2007 14:21
XuM -- а что значит "нормально"? Я им не пользуюсь, но для эксперимента подключал. Работает. Вместе с UninsHS.exe шел readme.txt в котором все подробно расписано, как и что делать.
Автор: maxdddca123
Дата сообщения: 10.01.2007 14:27
Genri
Всё таки скрипт с кнопкой какой то не очень рабочий. Вроде Readme.txt надо чтоб в [files] был, и зачем else
MsgBox('Problems extracting Info file !', mbError, mb_Ok); ??? Поясни плиз. И выше ещё так вопросы.
Автор: XuM
Дата сообщения: 10.01.2007 14:37
Genri
у меня при запуске repair ниче не рапаиртся, если делать модифай-все компоненты показываются, как невыбранные=>не пашет repair, тоесть ощущение, что каким-то образом теряются компоненты, все версии - последние
Автор: Genri
Дата сообщения: 10.01.2007 15:05
maxdddca123

Цитата:
скрипт с кнопкой какой то не очень рабочий
-- ну так переделай под себя. Основа есть. У меня сейчас времени нет.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172

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


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