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

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

Автор: crank666
Дата сообщения: 23.12.2008 21:17
Помогите, уже всё перепробовал аж страшно
Инсталлятор готов, компелирую, а иконка setup.exe исчезает и пропадает вкладка свойсва (когда нажимаеш 2-й кн. мыши).
ПОСМОТРИТЕ
Но такое получается когда объём программы 700Мб или 1Гб, а когда я пробовал компелировать 200Мб то иконка нормальная была.
Что делать?
Автор: LordVeider
Дата сообщения: 23.12.2008 21:22
Виндовые это проблемы.
Автор: crank666
Дата сообщения: 23.12.2008 23:03
У меня обычная винда XP SP3 копия с лицензии.
И чё делать мне чтоб всё было норм?
Автор: sanmon
Дата сообщения: 24.12.2008 04:41
Уважаемый cdman67, а как использовать precomp в inno, есть какой-то разумный способ? У меня единственный вариант - использовать precomp, компилровать инсталлер, после установки батником запускать обратную рекомпрессию, но это все как-то топорно, есть нормальные варианты? И как можно автоматизировать precomp для большого количества файлов? Заранее спасибо!
Автор: mikutu
Дата сообщения: 24.12.2008 05:29
Victor_Dobrov
Спасибо, но возник еще один вопрос можно ли изменить шрифт которым пишется надписи (Приветствие, Лицензионное соглашение (название страниц)), а то в скрипте я не нашел (точнее вроде везде изменил шрифт на Arial а этот остался предположительно Times New Roman (просто везде шрифт без засечек, а здесь с засечками))
P.S. насчет backroundcolor я в принципе нашел сам, а про wizardform.font.color не сообразил пределал немного картинку, на будущее буду иметь ввиду
Автор: SotM
Дата сообщения: 24.12.2008 07:51
crank666

Цитата:
У меня обычная винда XP SP3 копия с лицензии.
И чё делать мне чтоб всё было норм?

Тут уже сто раз об этом говорили, можешь пролистать несколько страниц назад. Ничего с этим не сделаешь. Тебе же сказали, что это проблемы винды. Как вариант, можешь связаться с Microsoft...
Автор: sanmon
Дата сообщения: 24.12.2008 09:49
Вопрос решен
Может кто-нибудь решал такой вопрос - как сделать проверку, чтобы инсталлер проверял путь установки, и, если указан какой-либо диск, но без папки, зпрещал установку и выдавал сообщение, типа, надо еще указать и папку. Короче, как сделать запрет ставить в корень диска?
Автор: EagleSH
Дата сообщения: 24.12.2008 13:59
htuos

Цитата:
EagleSH
зачем тебе для рисования фона на форме isxbb? это можно и без нее сделать

нужно мне, помочь можешь?
Автор: viktor9
Дата сообщения: 24.12.2008 14:44
Подскажите можно в Inno Setup таку штуку
Вот в некоторых установочниках есть функция если на сервере есть новая версия инстал программы то при установки старой она автоматически скачуется из сервера и устанавливаеться.
Вот хочется такое сделать в Inno Setup допустим упаковал игру и чтото неправильно настроили или баг какойто вылез и чтобы сново не раздавать новую сборку а положить на сайт или ftp и он оттуда автоматически скачивался если устанавливат старую версию??
Автор: Sampron
Дата сообщения: 24.12.2008 14:51
LordVeider

Цитата:
Вопрос о хитром расположении компонентов до сих пор открыт.

Если я тебя правильно понял то попробуй [more=так]
[Setup]
AppName=My Program
AppVerName=My Program version 1.5
DefaultDirName={pf}\My Program

[Components]
Name: A; Description: Группа А
Name: A\A1; Description: Компонент 1
Name: A\A2; Description: Компонент 2
Name: B; Description: Группа B
Name: B\B1; Description: Группа B1
Name: B\B1\B11; Description: Компонент 1; Flags: exclusive
Name: B\B1\B22; Description: Компонент 2; Flags: exclusive

[Files]
Source: compiler:Examples\MyProg.exe; DestDir: {app}; Check: Check1
Source: compiler:Examples\MyProg.chm; DestDir: {app}; Check: Check2

[_Code]
function Check1: Boolean;
begin
Result:=WizardForm.ComponentsList.ItemEnabled[5] and WizardForm.ComponentsList.Checked[5]
end;

function Check2: Boolean;
begin
Result:=WizardForm.ComponentsList.ItemEnabled[6] and WizardForm.ComponentsList.Checked[6]
end;

procedure OnClickCheck(Sender: TObject);
begin
if WizardForm.ComponentsList.Checked[2] = True then
begin
WizardForm.ComponentsList.ItemEnabled[4]:=True
WizardForm.ComponentsList.ItemEnabled[5]:=True
WizardForm.ComponentsList.ItemEnabled[6]:=True
end else
begin
WizardForm.ComponentsList.ItemEnabled[4]:=False
WizardForm.ComponentsList.ItemEnabled[5]:=False
WizardForm.ComponentsList.ItemEnabled[6]:=False
end
end;

procedure InitializeWizard();
begin
WizardForm.ComponentsList.Checked[2]:=True
WizardForm.ComponentsList.Checked[4]:=True
WizardForm.ComponentsList.OnClickCheck:=@OnClickCheck
end;

[/more]
Автор: EagleSH
Дата сообщения: 24.12.2008 15:14
Sampron
ты не знаешь случайно ответов на мои вопросы?


Цитата:
почему не отображаются файлы, которые в данный момент копируются???
добавил по аналогии PageNameLabel, PageDescriptionLabel и банан
[more]
var
PageNameLabel, PageDescriptionLabel, FileNameLabel: TLabel;


procedure InitializeWizard();
begin
PageNameLabel := TLabel.Create(WizardForm);
with PageNameLabel do
begin
Left := ScaleX(10);
Top := ScaleY(10);
Width := ScaleX(300);
Height := ScaleY(14);
AutoSize := False;
WordWrap := True;
Font.Color := clBlack;
Font.Style := [fsBold];
ShowAccelChar := False;
Transparent := True;
Parent := WizardForm.MainPanel;
end;

PageDescriptionLabel := TLabel.Create(WizardForm);
with PageDescriptionLabel do
begin
Left := ScaleX(15);
Top := ScaleY(25);
Width := ScaleX(475);
Height := ScaleY(30);
AutoSize := False;
WordWrap := True;
Font.Color := clBlack;
ShowAccelChar := False;
Transparent := True;
Parent := WizardForm.MainPanel;
end;

FileNameLabel := TLabel.Create(WizardForm);
with FileNameLabel do
begin
Left := ScaleX(15);
Top := ScaleY(65);
Width := ScaleX(475);
Height := ScaleY(30);
AutoSize := False;
WordWrap := True;
Font.Color := clBlack;
ShowAccelChar := False;
Transparent := True;
Parent := WizardForm.MainPanel;
end;

with WizardForm do
begin
PageNameLabel.Hide;
PageDescriptionLabel.Hide;
FileNameLabel.Hide;

end;
end;


procedure CurPageChanged(CurPageID: Integer);
begin
PageNameLabel.Caption := WizardForm.PageNameLabel.Caption;
PageDescriptionLabel.Caption := WizardForm.PageDescriptionLabel.Caption;
FileNameLabel.Caption := WizardForm.FileNameLabel.Caption;
end;
[/more]


и как с помощью isxbb положить фоновую картинку на wizardform и сверху транспорент создать.
Автор: clemenco
Дата сообщения: 24.12.2008 15:50
так же хотелось бы прочитать коментарии, что там и к чему. все попытки разобраться самому окончились ничем

http://forum.ru-board.com/topic.cgi?forum=5&topic=27438&start=1960#7

Видимо никому из великих гуру это не интересно...
STALKER_HIGHLANDER
Попробуй так, должно получиться [more=Код..][Setup]
AppName=stalker
AppVerName=stalker
DefaultDirName={pf}\stalker
DefaultGroupName=stalker
AllowNoIcons=yes
Compression=lzma/ultra
SolidCompression=yes
Uninstallable=yes

[Files]
Source: user.ltx; DestDir: {commondocs}\STALKER-SHOC\ ; Flags: ignoreversion; AfterInstall: ReplaceLine

[Code]
procedure ReplaceLine();
var
S: TArrayOfString;
F: String;
i:integer;
begin
F := ExpandConstant('{commondocs}')+'\STALKER-SHOC\user.ltx';
if not FileExists(F) then
Exit;
LoadStringsFromFile(F, S);
for i:=0 to GetArrayLength(S)-1 do begin
if Pos('r2_gloss_factor',S[i])>0 then
S[i]:='r2_gloss_factor 2.5';
end;
SaveStringsToFile(F, S, False);
end;[/more]
Автор: Dermuin
Дата сообщения: 24.12.2008 20:17
Подскажите как доработать скрипт чтоб чекбокс был видимый.


Код: [Code]
var
CheckBox: TCheckBox;

procedure InitializeWizard();
begin
CheckBox:=TCheckBox.Create(WizardForm);
CheckBox.SetBounds(10,330,200,17)
CheckBox.Caption:='Выборочная установка'
CheckBox.Checked:=True
CheckBox.Parent:=WizardForm.WelcomePage
end;

procedure CurPageChanged(CurPageID: Integer);
begin
if not CheckBox.Checked then
case CurPageID of
wpPassword, wpInfoBefore, wpUserInfo, wpSelectDir,
wpSelectComponents, wpSelectProgramGroup, wpSelectTasks,
wpReady, wpPreparing, wpInstalling, wpInfoAfter, wpFinished:
WizardForm.NextButton.OnClick(nil)
end
end;
Автор: Sampron
Дата сообщения: 24.12.2008 20:45
Dermuin
Обрати внимание на строку:
CheckBox.SetBounds(10,330,200,17)
выставь нужное тебе положение.
Автор: Dermuin
Дата сообщения: 25.12.2008 01:49
Sampron

Цитата:
Обрати внимание на строку:
CheckBox.SetBounds(10,330,200,17)

Как раз там те данные которые мне надо, а если заменить значение:
CheckBox.Parent:=WizardForm.WelcomePage
на
CheckBox.Parent:=WizardForm
То чекбокс будет виден, но на всех страницах а мне нужно только на первой.

Скрин
[more] [/more]
Автор: Sampron
Дата сообщения: 25.12.2008 02:43
Dermuin
Мог бы просто поднять, но если нужно снизу то [more=так]
[_Code]
var
CheckBox: TCheckBox;

procedure InitializeWizard();
begin
CheckBox:=TCheckBox.Create(WizardForm);
CheckBox.SetBounds(10,330,200,17)
CheckBox.Caption:='Выборочная установка'
CheckBox.Checked:=True
CheckBox.Parent:=WizardForm
end;

procedure CurPageChanged(CurPageID: Integer);
begin
if not CheckBox.Checked then
case CurPageID of
wpPassword, wpInfoBefore, wpUserInfo, wpSelectDir,
wpSelectComponents, wpSelectProgramGroup, wpSelectTasks,
wpReady, wpPreparing, wpInstalling, wpInfoAfter, wpFinished:
WizardForm.NextButton.OnClick(nil)
end

if CurPageID = wpWelcome then
CheckBox.Show

case CurPageID of
wpPassword, wpInfoBefore, wpUserInfo, wpSelectDir,
wpSelectComponents, wpSelectProgramGroup, wpSelectTasks,
wpReady, wpPreparing, wpInstalling, wpInfoAfter, wpFinished:
CheckBox.Hide
end
end;
[/more]
Автор: sanmon
Дата сообщения: 25.12.2008 08:46
Повторюсь, уж извините, очень надо!
Уважаемый cdman67 и все, кто разобрался! Подскажите, как использовать precomp в inno, есть какой-то разумный способ? У меня единственный вариант - использовать precomp, компилровать инсталлер, после установки батником запускать обратную рекомпрессию, но это все как-то топорно, есть ли нормальные варианты? И как можно автоматизировать precomp для большого количества файлов? Заранее спасибо!
Автор: EagleSH
Дата сообщения: 25.12.2008 11:17
неужто гуру inno не могут ответить?
Автор: Diawer
Дата сообщения: 25.12.2008 16:29
Может все-таки кто-то знает, как вставить на страницу (не важно какую) изображение формата .png (с поддержкой прозрачности) ну или .bmp (тоже с прозрачным каким-то цветом). У меня есть только код вставки просто [more=изображения][Setup]
AppName=My Program
AppVerName=My Program version 1.0
DefaultDirName={pf}\My Program
DisableProgramGroupPage=yes

[Files]
Source: compiler:WizModernSmallImage.bmp; Flags: dontcopy

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

[_Code]
procedure InitializeWizard();
var
BitmapImage: TBitmapImage;
BitmapFileName: String;
begin
BitmapFileName := ExpandConstant('{tmp}\WizModernSmallImage.bmp');
ExtractTemporaryFile(ExtractFileName(BitmapFileName));
BitmapImage := TBitmapImage.Create(WizardForm);
BitmapImage.Top := ScaleY(30);
BitmapImage.Left := ScaleX(362);
BitmapImage.AutoSize := True;
BitmapImage.Bitmap.LoadFromFile(BitmapFileName);
BitmapImage.Parent := WizardForm.SelectTasksPage;
WizardForm.TasksList.Width := ScaleX(290); //Изменить размер TasksList
end;[/more] (может, поможет).
Автор: Sampron
Дата сообщения: 25.12.2008 19:55
Diawer
Может просто добавить свойства к bmp:
ReplaceColor
ReplaceWithColor
Автор: EagleSH
Дата сообщения: 25.12.2008 22:44
Sampron
я так понял, ты пасс?
Автор: Diawer
Дата сообщения: 26.12.2008 07:15
Sampron
Спасибо, попробую.
Автор: Sampron
Дата сообщения: 26.12.2008 12:42
EagleSH

Цитата:
почему не отображаются файлы, которые в данный момент копируются???
добавил по аналогии PageNameLabel, PageDescriptionLabel и банан

Потому что обновление текста привязано к стандартому лейблу, попробуй повесить банан на таймер.
Автор: EagleSH
Дата сообщения: 26.12.2008 13:18
Sampron

Цитата:
попробуй повесить банан на таймер.



странный пост... интересно, что я такого сказал, что тебе не понравилось. ну ладно, звиняй.
Автор: Sampron
Дата сообщения: 26.12.2008 13:43
EagleSH
Что странного?
Ты задал вопрос почему не отображаются файлы, которые в данный момент копируются???
А потому что обновление текста привязано к стандартому лейблу (FilenameLabel: TNewStaticText)

Цитата:
попробуй повесить банан на таймер.


Цитата:
добавил по аналогии PageNameLabel, PageDescriptionLabel и банан

Здесь ты используешь TLabel, повесь его на таймер.
Автор: EagleSH
Дата сообщения: 26.12.2008 13:48
Sampron
я извиняюсь, но что-то не пойму


Цитата:
FileNameLabel := TLabel.Create(WizardForm);
with FileNameLabel do
begin
Left := ScaleX(15);
Top := ScaleY(65);
Width := ScaleX(475);
Height := ScaleY(30);
AutoSize := False;
WordWrap := True;
Font.Color := clBlack;
ShowAccelChar := False;
Transparent := True;
Parent := WizardForm.MainPanel;
end;


где тут статиктекст?


Цитата:
и как с помощью isxbb положить фоновую картинку на wizardform и сверху транспорент создать.

а тут ты не в курсе? правильно?

и о каком таймере речь?
Автор: Sampron
Дата сообщения: 26.12.2008 13:58
EagleSH

Цитата:
я извиняюсь, но что-то не пойму

[more=Код]
[Files]
Source: InnoCallback.dll; DestDir: {tmp}; Flags: dontcopy

[_Code]
var
FileNameLabel: TLabel;

type
TTimerProc=procedure(h:longword; msg:longword; idevent:longword; dwTime:longword);

function WrapTimerProc(callback:TTimerProc; paramcount:integer):longword;
external 'wrapcallback@files:innocallback.dll stdcall';
function SetTimer(hWnd: longword; nIDEvent, uElapse: longword; lpTimerFunc: longword): longword;
external 'SetTimer@user32.dll stdcall';

procedure OnTimer(h:longword; msg:longword; idevent:longword; dwTime:longword);
begin
FileNameLabel.Caption:=WizardForm.FileNameLabel.Caption
end;

procedure InitializeWizard();
begin
SetTimer(0,0,0,WrapTimerProc(@OnTimer,4))

FileNameLabel:=TLabel.Create(WizardForm)
FileNameLabel.SetBounds(0,100,417,30)
FileNameLabel.AutoSize:=False
FileNameLabel.WordWrap:=True
FileNameLabel.ShowAccelChar:=False
FileNameLabel.Transparent:=True
FileNameLabel.Parent:=WizardForm.InstallingPage
end;
[/more]
Автор: SotM
Дата сообщения: 26.12.2008 14:52
EagleSH

Цитата:
и как с помощью isxbb положить фоновую картинку на wizardform

А зачем именно isxbb использовать? Обычные .bmp можно и так "загрузить" в wizardform. Примеров полно.
И что значит это:
Цитата:
и сверху транспорент создать
Это как?
Автор: EagleSH
Дата сообщения: 26.12.2008 15:13
Sampron
спс дружище!
SotM
нужно именно с isxbb!

Цитата:
Это как?

ну накладываем картинку, а сверху пишем текст
Автор: SotM
Дата сообщения: 26.12.2008 15:23
EagleSH

Цитата:
ну накладываем картинку, а сверху пишем текст

А нельзя чтоли обычный Label затулить с Transparent установленного в True?


Цитата:
нужно именно с isxbb!

Вроде как не получиться именно с этой библиотекой...

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970

Предыдущая тема: Презентация


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