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

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

Автор: Chuvakstepan
Дата сообщения: 10.09.2007 12:59
Sid007
Попробуй заменить:
BackImage.Stretch:=True
на
BackImage.Stretch:=False

Хотя я не уверен что получится
Автор: Sid007
Дата сообщения: 10.09.2007 13:45
Да, не подходит... Но вот что я заметил в процедуре CurPageChanged

если заменить Stretch:=True на Stretch:=False, то картинка уходит в левый верхний угол и весь фон остальной становится белым. Нельзя ли исправить белый на черный и переместить картинку в центр.

Вот код...[more]
procedure CurPageChanged(CurPageID: Integer);
var
pfunc: LongWord;
Width, Height: Integer;
begin
If CurPageID=wpInstalling
then
begin
pfunc:=WrapTimerProc(@OnTimer, 4)
TimerID:=SetTimer(0, 0, 500, pfunc)
SlideImage:=TBitmapImage.Create(MainForm)
with SlideImage do begin
Stretch:=True
Align:=alClient
Bitmap.LoadFromFile(ExpandConstant('{tmp}') + '\1.bmp')
Parent:=MainForm
Tag:=1
end
end
if CurPageID=wpFinished
then
begin
SlideImage.Hide
end
end;
[/more]
Автор: Unc1e
Дата сообщения: 10.09.2007 14:07
Sid007 Попробуй после Stretch:=False допиши Center:=true и BackColor:=clBlack. Получится так:
with SlideImage do begin
Stretch:=false
Center:=true
BackColor:=clBlack
...
end
Кстати: в скрипте не используются 2 переменные Width, Height: Integer;
Автор: Chuvakstepan
Дата сообщения: 10.09.2007 14:22
Попробуй так:
[more=Подробнее...]procedure CurPageChanged(CurPageID: Integer);
var
pfunc: LongWord;
Width, Height: Integer;
begin
If CurPageID=wpInstalling
then
begin
pfunc:=WrapTimerProc(@OnTimer, 4)
TimerID:=SetTimer(0, 0, 500, pfunc)
SlideImage:=TBitmapImage.Create(MainForm)
with SlideImage do begin
Stretch:=True
Align:=alClient
Bitmap.LoadFromFile(ExpandConstant('{tmp}') + '\1.bmp')
Parent:=MainForm
Tag:=1
Position:=poScreenCenter
Color:=clBackground
end
end
if CurPageID=wpFinished
then
begin
SlideImage.Hide
end
end; [/more]
Автор: RazDray
Дата сообщения: 10.09.2007 14:34
iTASmania_Inc
Цитата:
Совсем ламерский ответ - удваиваем.
Спасибо, а то я тут тужусь через всякие %, # и т.д., а оно ни в какую (:

serg_aka_lain
Цитата:
Объеденить можно, с использованием страницы UserInfoPage

Красотища!
Ещё раз спасибо!

Автор: 4esnok
Дата сообщения: 10.09.2007 18:34
Люди, как изменить ширину и высоту индикатора установки? и его расположение
Автор: iTASmania_Inc
Дата сообщения: 10.09.2007 18:58
4esnok
Вот пример:
procedure InitializeWizard();
begin
WizardForm.ProgressGauge.Top := 100 // Отступ сверху
WizardForm.ProgressGauge.Left := 100 // Отступ слева
WizardForm.ProgressGauge.Height := 30 // Высота
WizardForm.ProgressGauge.Width := 140 // Ширина
end;
Автор: 4esnok
Дата сообщения: 10.09.2007 19:05
iTASmania_Inc То что надо!
Автор: Victor_Dobrov
Дата сообщения: 11.09.2007 01:44
Sid007
А мой вариант Слайдшоу не подойдёт?
Автор: RazDray
Дата сообщения: 11.09.2007 08:40
А как можно реализовать мультиязычность в MsgBox?

Про то, как менять стандартные сообщения, везде подробно расписано, а вот как сделать врианты своих сообщений на разных языках - не нашёл.

К примеру, если программа устанавливается на английской Windows, то
MsgBox('Hello, Vasia!')
Если на русской, то MsgBox('Привет, Вася!.')
Автор: Unc1e
Дата сообщения: 11.09.2007 13:15
RazDray
Почитай про {cm:MessageName} и {cm:MessageName,Arguments} в справке в разделе Constants. Для твоего случая надо будет открыть языковой файл (..\Inno Setup 5\Languages\*.isl) с помощью, скажем, Блокнота и в секции [CustomMessages] добавить имя и текст сообщения, на которое потом ссылаться в скрипте. Или можно с помощью секции [CustomMessages] уже в самом скрипте. Пример
[CustomMessages]
en.MsgBox=Hello, Vasia!
ru.MsgBox=Привет, Вася!
где en и ru - имя языков из секции [Languages]
ЗЫ: посмотри в примерах скрипт Languages.iss
Автор: megarom
Дата сообщения: 11.09.2007 15:26
Ребяты, а такая штука отработает?

Код:
==СОДЕ секция==
Const
Cp='.\ASC\code\company_and_passw.txt';
Rt='.\ASC\code\readme_template.txt';
Rn='.\ASC\code\readme.txt';
Var
Cptempstrarray,Rttempstrarray: TArrayOfString;
ReadmeFileName, CompanyName, Password: String;
i, j, PosChrTab: Integer;
Procedure MakeFileName();
begin
Try
LoadStringsFromFile(Cp,Cptempstrarray);
except
MsgBox('Loaded the '+Cp+' file.', mbInformation, mb_Ok);
end;
LoadStringsFromFile(Rt,Rttempstrarray);
for i:=1 to GetArrayLength(Cptempstrarray) do
begin
CompanyName:='';
PosChrTab:=Pos('    ',Cptempstrarray[i]);
CompanyName:=RemoveQuotes(Copy(Cptempstrarray[i],1,PosChrTab));
Password:='';
Password:=Copy(Cptempstrarray[i],PosChrTab,Length(Cptempstrarray[i])-PosChrTab);
For j:=1 to GetArrayLength(Rttempstrarray) do
begin
If Pos('COMPANYNAME',Rttempstrarray[j])>0 then
begin
StringChange(Rttempstrarray[j],'COMPANYNAME',CompanyName);
ReadmeFileName:=Rn+'_'+CompanyName;
FileCopy(Rt,ReadmeFileName,False);
SaveStringsToFile(ReadmeFileName,Rttempstrarray,False);
end;
end;
end;
end;
begin
MakeFileName();
end.
Автор: Volkogriz
Дата сообщения: 11.09.2007 16:11
Привет всем!!!
Выиснил что bik файл занимает меньше места на диски чем avi и другие....!
Подскажите пожалуйсто можно ли проиграть за место фона bik видио !!!
Если да то какую библиотеку использовать binkw32.dll???
Зарание благодарю!!!

Добавлено:
Ещё вопрос!!!
Как посли удоления моей программы вернуть всевсе значение реесра по умолчанию как они были до устоновки???
Есть с этим очень большие проблемы!!!
За рание благадарю!!!
Автор: RazDray
Дата сообщения: 11.09.2007 17:11
Unc1e
Цитата:
Для твоего случая надо будет открыть языковой файл

Вариант, конечно, но трогать языковые файлы ради одного конкретного случая не хочется.
А с [CustomMessages] я уже замучался возиться.
Сам Messages создать не проблема, но как вставить его в оператор MsgBox???
Ни в одном примере, не в хелпах такого нет.

MsgBox(Что должно быть тут?, mberror, mb_ok);
Автор: iTASmania_Inc
Дата сообщения: 11.09.2007 17:29
RazDray

Цитата:
Ни в одном примере, не в хелпах такого нет.

Да ладно? В хэлпе как раз это есть.
[more=Подробнее...]
[Setup]
AppName=My Program
AppVerName=My Program [Version]
DefaultDirName={pf}\My Program

[Languages]
Name: en; MessagesFile: "compiler:Default.isl"
Name: ru; MessagesFile: "compiler:Languages\Russian.isl"

[CustomMessages]
en.MyText = Hello, Vasya!
ru.MyText = Привет, Васёк!

[Code]
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpWelcome then
MsgBox(ExpandConstant('{cm:MyText}'), mbError, mb_OK);
end;
[/more]
Автор: RazDray
Дата сообщения: 11.09.2007 18:02
iTASmania_Inc
>>> MsgBox(ExpandConstant('{cm:MyText}'),

Вот оно (:
Спасибо!
Автор: Forslay
Дата сообщения: 11.09.2007 20:06
Как реализовать следующую вещь:
Мне нужно что бы пользователю было предложена пезагрузка системы после ДЕИНСТАЛЛЯЦИИ программы... очень важно...
заранее спасибо..
Автор: avzaytsev
Дата сообщения: 11.09.2007 20:07
Volkogriz

Программка для просмотра bik-файлов:
http://www.rapidshare.ru/397913
Автор: iTASmania_Inc
Дата сообщения: 11.09.2007 20:16
Forslay
В секции [Setup] пишешь:
UninstallRestartComputer=yes
Автор: Forslay
Дата сообщения: 11.09.2007 20:46
iTASmania_Inc
Большое спасибо, такая сложная скриптовая функция, видимо действительно сегодняшнее давление сказалось на моём неадекватном поведении...
Автор: Sid007
Дата сообщения: 12.09.2007 07:11

Цитата:
Sid007 Попробуй после Stretch:=False допиши Center:=true и BackColor:=clBlack. Получится так:
with SlideImage do begin
Stretch:=false
Center:=true
BackColor:=clBlack



Цитата:
Попробуй так:


Chuvakstepan, Unc1e - ОГРОМНОЕ СПАСИБО ВСЕ ПОЛУЧИЛОСЬ!!!

Unc1e

Цитата:
Кстати: в скрипте не используются 2 переменные Width, Height: Integer;


Я заметил, только руки пока еще до них не дошли их убрать, с картинками не мог разобраться...


Добавлено:
P.S. Victor_Dobrov - Благодарю за предоставленный код.
Автор: dim30ma10
Дата сообщения: 12.09.2007 08:13
Всем привет
Вопрос у меня такой:
При установке программы на Рабочем столе, в панеле Быстрого запуска и папке Программы создаются ярлычки с указанием номера версии программы и еще кое-какой дополнительной информацией об этой установке
Как при установки новой версии программы поверх уже установленной удалить все созданные при предыдущей установке ярлыки?
Можно ли достать информацию о них из unins???.dat?
Автор: 4esnok
Дата сообщения: 12.09.2007 10:57
Помогите, как сделать чтоб окно инсталлятора изначально появлялось, например в нижнем левом углу?
Автор: omals
Дата сообщения: 12.09.2007 11:36
привет
iTASmania_Inc
RazDray

шото мне кажется шо правильно будет поступать вот так

[Languages]
Name: "en"; MessagesFile: "MyEng.isl, compiler:Default.isl"
Name: "ru"; MessagesFile: "Russian.isl, MyRus.isl"

создаем для кажного языка дополнительный файлы
MyEng.isl, в котором
[CustomMessages]
MyText = Hello, Vasya!

а в MyRus.isl
[CustomMessages]
MyText = Привет, Васёк!

в зависимости от выбранного языка будет подставляться и текстовка в
MsgBox(ExpandConstant('{cm:MyText}'), mbError, mb_OK);

Автор: Chuvakstepan
Дата сообщения: 12.09.2007 12:48
4esnok
Попробуй так

Код: [Code]
procedure InitializeWizard();
begin
WizardForm.Left:=0;
WizardForm.Top:=532;
end;
Автор: Sampron
Дата сообщения: 12.09.2007 12:54
4esnok
Если тебе нужно чтобы окно отображалось в нижнем левом углу при любом разрешении то лучше так:

[Code]
function GetSystemMetrics(nIndex:Integer):Integer;
external 'GetSystemMetrics@user32.dll stdcall';

procedure InitializeWizard();
begin
WizardForm.Left:=0
WizardForm.Top:=GetSystemMetrics(17)-WizardForm.Height-(0)
end;
Автор: 4esnok
Дата сообщения: 12.09.2007 15:06
Chuvakstepan, Sampron Проблема, почему на фоне не работает?
Автор: Sampron
Дата сообщения: 12.09.2007 15:21
4esnok

Цитата:
Проблема, почему на фоне не работает?

хм... у меня работает

[Setup]
AppName=My Program
AppVerName=My Program 1.5
DefaultDirName={pf}\My Program
WindowVisible=True

[Code]
function GetSystemMetrics(nIndex:Integer):Integer;
external 'GetSystemMetrics@user32.dll stdcall';

procedure InitializeWizard();
begin
WizardForm.Left:=0
WizardForm.Top:=GetSystemMetrics(17)-WizardForm.Height-(0)
end;
Автор: Nekt
Дата сообщения: 12.09.2007 16:22
DefaultDirName={reg:HKEY_LOCAL_MACHINE\SOFTWARE\GSC Game World\STALKER-SHOC,InstallPath|My Program}
Народ после такого выводит ошибку "Invalid registry constant"
Что делать? Указал все правильно Раздел STALKER-SHOC а ключ InstallPath надо устоновить файлы в папку gamedata/script.
Как мне быть?


Добавлено:
тип параметра REG_SZ
Автор: Unc1e
Дата сообщения: 12.09.2007 17:03
Nekt DefaultDirName={reg:HKLM\SOFTWARE\GSC Game World\STALKER-SHOC,InstallPath|{pf}\My Program}
Нужно вместо HKEY_LOCAL_MACHINE писать HKLM.

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768

Предыдущая тема: Mail.ru агент - вход не выполнен


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