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

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

Автор: insombia
Дата сообщения: 15.08.2011 10:23
bugron у меня нету скрипта я наоборот хочу сделать похожее
Автор: bugron
Дата сообщения: 15.08.2011 10:25
insombia
Смотрим в личку
Автор: YURSHAT
Дата сообщения: 15.08.2011 11:06
bugron

Цитата:
Добавл в скрипт VASYAKRN-а, картинка появляется, но с каким-то фоном.

Значит неправильно добавил. И я даже догадываюсь почему. Я ведь дал пример для стандартной формы. Объясню:

В моем примере есть две процедуры


Код: SelectDirBitmapImage:=ImgLoad(WizardForm.SelectDirPage.Handle,ExpandConstant('{tmp}\DirImage.png'),ScaleX(55), ScaleY(140),ScaleX(48),ScaleY(48),true,true);
SelectGroupBitmapImage:=ImgLoad(WizardForm.SelectProgramGroupPage.Handle,ExpandConstant('{tmp}\GroupImage.png'),ScaleX(55), ScaleY(140),ScaleX(48),ScaleY(48),true,true);
Автор: bugron
Дата сообщения: 15.08.2011 11:16
YURSHAT
Спасибо, теперь все понял, а справку я читал, но как видно, не очень внимательно, ещё раз спасибо.
Автор: YURSHAT
Дата сообщения: 15.08.2011 11:17
bugron

Цитата:
вот пример, также показывает размер текущего файла в байтах.


Не смею утверждать но если я правильно понял с байтами это пример из старой коллекции скриптов. Это не лучший вариант. [more=Вот][Setup]
AppName=MyApp
AppVerName=MyApp
DefaultDirName={pf}\MyApp

[Files]
Source: compiler:innocallback.dll; Flags: dontcopy
Source: {win}\Help\*; DestDir: {app}; Flags: external recursesubdirs

[code]
type
TTimerProc = procedure(HandleW, Msg, idEvent, TimeSys: LongWord);

var
PercentsTimer: LongWord;
PercentsLabel: TLabel;

function WrapTimerProc(callback: TTimerProc; Paramcount: Integer): longword; external 'wrapcallback@files:innocallback.dll stdcall';
function SetTimer(hWnd, nIDEvent, uElapse, lpTimerFunc: LongWord): longword; external 'SetTimer@user32';
function KillTimer(hWnd, nIDEvent: LongWord): LongWord; external 'KillTimer@user32 stdcall delayload';

Function NumToStr(Float: Extended): String;
Begin
Result:= Format('%.1n', [Float]); StringChange(Result, ',', '.');
while ((Result[Length(Result)] = '0') or (Result[Length(Result)] = '.')) and (Pos('.', Result) > 0) do
SetLength(Result, Length(Result)-1);
End;

Procedure PercentsProc(h, msg, idevent, dwTime: Longword);
Begin
with WizardForm.ProgressGauge do
begin
PercentsLabel.Caption:= 'Выполнено ' + NumToStr((Position*100)/Max) + ' %';
end;
End;

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

procedure InitializeWizard();
begin
PercentsLabel:= TLabel.Create(WizardForm);
with PercentsLabel do
begin
Left:= WizardForm.ProgressGauge.Left;
Top:= WizardForm.ProgressGauge.Top + WizardForm.ProgressGauge.Height + ScaleY(10);
Width:= WizardForm.StatusLabel.Width;
Height:= WizardForm.StatusLabel.Height;
AutoSize:= False;
Transparent := True;
Parent:= WizardForm.InstallingPage;
end;
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssInstall then
begin
PercentsTimer:= SetTimer(0, 0, 100, WrapTimerProc(@PercentsProc, 4));
end;
end;
[/more] этот вариант будет лучше.


Цитата:
Да и ещё, кто-та занимается обновлением русской справки для Inno Setup?


Нет не занимается, а зачем? В шапке есть переведенная справка от BagIra.
Автор: bugron
Дата сообщения: 15.08.2011 11:21

Цитата:
Нет не занимается, а зачем? В шапке есть переведенная справка от BagIra.

Ну в версии 5.4.2 изменения, это добавлено, то удалено, а как узнать что нового, если в справке BagIri об этом не написано?

Добавлено:

Цитата:
Не смею утверждать но если я правильно понял с байтами это пример из старой коллекции скриптов. Это не лучший вариант. Вот этот вариант будет лучше.

Да ты правильно понял, и эта версия скрипта у меня нормально работает в отличии от того, который ты мне дал. Если точнее работает, но после 13% проценты отрицательные числа (было смешно), может это потому, что у меня Unicode версия, или что Enhanced edition?
Автор: YURSHAT
Дата сообщения: 15.08.2011 11:30
bugron

Цитата:
а как узнать что нового, если в справке BagIri об этом не написано?

Ну все основное там переведено. А если ты пишешь скрипты на инно то минимальными знаниями английского должен обладать, которых достаточно будет, чтобы понять, что нового в той или иной новой версии...
Автор: bugron
Дата сообщения: 15.08.2011 11:33

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

Я и обладаю, для других я говорил.
Автор: Sarcastic_94
Дата сообщения: 15.08.2011 11:41
добрый всем день/вечер, кто сможет к этому скрипту прикрутить воспроизведение музыки?

http://rghost.ru/18014331

буду премного благодарен!
Автор: YURSHAT
Дата сообщения: 15.08.2011 11:51
bugron

Цитата:
Я и обладаю, для других я говорил.

Я думал тебе самому не понятно, а коль хочешь сделать перевод - то вперед. Думаю многи юзеры скажут спасибо это благое дело.


Цитата:
в отличии от того, который ты мне дал. Если точнее работает, но после 13% проценты отрицательные числа (было смешно), может это потому, что у меня Unicode версия, или что Enhanced edition?


У меня на расширенном юникоде нормально компилится и работает. Попробуй заменить функцию NumToStr на эту [more]
Код: function NumToStr(Float: Extended): string;
begin
Result:=Format('%.2n', [Float]);
StringChange(Result, ',', '.');
while ((Result[Length(Result)]='0') or (Result[Length(Result)]='.')) and (Pos('.',Result)>0) do SetLength(Result,Length(Result)-1);
end;
Автор: Sarcastic_94
Дата сообщения: 15.08.2011 12:03
извиняюсь
http://rghost.ru/18016801
Автор: bugron
Дата сообщения: 15.08.2011 12:06

Цитата:
добрый всем день/вечер, кто сможет к этому скрипту прикрутить воспроизведение музыки?

Вот, держи, bass.dll в наличии.
Автор: Sarcastic_94
Дата сообщения: 15.08.2011 12:17
bugron
спасибо,все работает,вот только я сглупил в просьбе и не уточнил что нужна иконка вкл/выкл..как это можно реализовать?
Автор: bugron
Дата сообщения: 15.08.2011 12:19

Цитата:
спасибо,все работает,вот только я сглупил в просьбе и не уточнил что нужна иконка вкл/выкл..как это можно реализовать?

Щас попробую, но результат не гарантирую, только что попытался, не получилось.

Добавлено:

Цитата:
У меня на расширенном юникоде нормально компилится и работает. Попробуй заменить функцию NumToStr на эту Подробнее...

Та же фигня
Автор: SotM
Дата сообщения: 15.08.2011 13:24
bugron

Цитата:
Я тут посмотрел, в шапке все ссылки на Inno Form Designer не рабочие. Сегодня сделал инсталл на русском и английском, аерсия проги 2.0.8. Вот ссылки: первая и вторая, думаю можно добавить в шапку.

Добавил в шапку твои ссылки. Но думаю, что многие уже пользуются редактором, который уже встроен в IDE (от Restools).
Автор: bugron
Дата сообщения: 15.08.2011 13:33

Цитата:
Добавил в шапку твои ссылки. Но думаю, что многие уже пользуются редактором, который уже встроен в IDE (от Restools).

Я тоже этим пользуюсь, но там постоянно нужно RedesignWizardForm заменить на initializeWizard, а также ISDF предназначен для создания страниц, а IDE в основном контролы.
Автор: YURSHAT
Дата сообщения: 15.08.2011 14:17

Цитата:
Я тоже этим пользуюсь, но там постоянно нужно RedesignWizardForm заменить на initializeWizard

А зачем заменять, когда в новых версиях RedesignWizardForm сама добавляется в initializeWizard.

Цитата:
а также ISDF предназначен для создания страниц, а IDE в основном контролы.

В расширенной версии тоже можно добавлять страницы Designer => Insert a WizardPage

Добавлено:
bugron

Цитата:
Та же фигня

Ну не знаю у меня в любом компилере работает, да и никто не жаловался вроде на этот код. Можно тогда взять код из моего скрипта Undercover (в шапке есть). В любом случае тот код который ты выкладывал имеет баги, какие я уже не вспомню (по-моему если объем инсталла больше гига или двух гигов процент не считается) но точно помню, что он не годится.
Автор: bugron
Дата сообщения: 15.08.2011 14:46

Цитата:
А зачем заменять, когда в новых версиях RedesignWizardForm сама добавляется в initializeWizard.

Ну не знаю , код работет только тогда, когда я заменяю RedesignWizardForm InitializeWizard-ом.

Цитата:
В расширенной версии тоже можно добавлять страницы Designer => Insert a WizardPage

прикольно, я об этом не знал.

Цитата:
Ну не знаю у меня в любом компилере работает, да и никто не жаловался вроде на этот код. Можно тогда взять код из моего скрипта Undercover (в шапке есть). В любом случае тот код который ты выкладывал имеет баги, какие я уже не вспомню (по-моему если объем инсталла больше гига или двух гигов процент не считается) но точно помню, что он не годится.

Щас попробую компилировать в ANSI версии, посмотрю что будет.

Добавлено:

Цитата:
Щас попробую компилировать в ANSI версии, посмотрю что будет.

Я был прав, все дело в Unicode версии.

Добавлено:

Цитата:
Щас попробую компилировать в ANSI версии, посмотрю что будет.

Я был прав, все дело в Unicode версии.
Автор: YURSHAT
Дата сообщения: 15.08.2011 15:00
bugron

Цитата:
Ну не знаю , код работет только тогда, когда я заменяю RedesignWizardForm InitializeWizard-ом.

Я вот только, что запустил инно, перешел в визуальный редактор, сдвинул для демострации лейбл вернулся назад к компилятору, в котором у меня такой код [more]
Код: [ISFormDesigner]
WizardForm=FF0A005457495A415244464F524D0030103101000054504630F10B5457697A617264466F726D0A57697A617264466F726D0C436C69656E744865696768740368010B436C69656E74576964746803F1010C4578706C696369744C65667402000B4578706C69636974546F7002000D4578706C69636974576964746803F9010E4578706C69636974486569676874038A010D506978656C73506572496E636802600A54657874486569676874020D00F10C544E65774E6F7465626F6F6B0D4F757465724E6F7465626F6F6B00F110544E65774E6F7465626F6F6B506167650B57656C636F6D65506167650D4578706C69636974576964746803F1010E4578706C6963697448656967687403390100F10E544E6577537461746963546578740D57656C636F6D654C6162656C3203546F700387000B4578706C69636974546F700387000000000000

[Code_]
{ RedesignWizardFormBegin } // Don't remove this line!
// Don't modify this section. It is generated automatically.
procedure RedesignWizardForm;
begin
with WizardForm.WelcomeLabel2 do
begin
Top := ScaleY(135);
end;

{ ReservationBegin }
// This part is for you. Add your specialized code here.

{ ReservationEnd }
end;
// Don't modify this section. It is generated automatically.
{ RedesignWizardFormEnd } // Don't remove this line!

procedure InitializeWizard();
begin
RedesignWizardForm;
end;
Автор: bugron
Дата сообщения: 15.08.2011 15:05

Цитата:
Я вот только, что запустил инно, перешел в визуальный редактор, сдвинул для демострации лейбл вернулся назад к компилятору, в котором у меня такой код Подробнее.... Как видишь все добавляется само.

Дай ссылку, пожалуйста, на твой IDE от Restools.

Добавлено:

Цитата:
Я вот только, что запустил инно, перешел в визуальный редактор, сдвинул для демострации лейбл вернулся назад к компилятору, в котором у меня такой код Подробнее.... Как видишь все добавляется само.

А у меня следующее и все, больше ничего.


Код:
[_Code]
{ RedesignWizardFormBegin } // Don't remove this line!
// Don't modify this section. It is generated automatically.
procedure RedesignWizardForm;
begin
with WizardForm.WizardBitmapImage do
begin
Left := ScaleX(32);
Top := ScaleY(-4);
end;

{ ReservationBegin }
// This part is for you. Add your specialized code here.

{ ReservationEnd }
end;
// Don't modify this section. It is generated automatically.
{ RedesignWizardFormEnd } // Don't remove this line!
Автор: YURSHAT
Дата сообщения: 15.08.2011 15:08
bugron

Цитата:
Дай ссылку, пожалуйста, на твой IDE от Restools.

Я из шапки брал.

ЗЫ. Я помню, что в старых версиях китайской сборки процедура InitializeWizard не генерилась и приходилось создавать ее самому и помещать в нее RedesignWizardForm. А в новых версиях уже нормально и этого делать не нужно - все генерится само.

Добавлено:
bugron
Скачай из шапки
Цитата:
Inno Setup Compiler 5.4.1-4.2 build 110319
и
Цитата:
nno ISCmplr Setup 5.4.2 build 110329
закинь в папку с инно и все должно работать

Автор: bugron
Дата сообщения: 15.08.2011 15:13

Цитата:
закинь в папку с инно и все должно работать

Ок, уже качаю.

Добавлено:
Всё нормально сработало, спасибо YURSHAT. Отныне буду работать только с ANSI версией Inno Setup.
Автор: Despofix
Дата сообщения: 15.08.2011 16:16
как с помощью ботвы растянуть wizardImage на всю форму если она не стандартного размера и на всех страницах ?
Автор: YURSHAT
Дата сообщения: 15.08.2011 16:29
Despofix

Цитата:
как с помощью ботвы растянуть wizardImage на всю форму если она не стандартного размера и на всех страницах ?


Кто не стандартная, ботва, форма или wizardImage? Вопрос вообще непонятен...

В архиве с ботвой ведь есть примеры наложения картинки на страницы инсталла
Автор: bugron
Дата сообщения: 15.08.2011 16:30

Цитата:
как с помощью ботвы растянуть wizardImage на всю форму если она не стандартного размера и на всех страницах ?

Думаю, как-то так: ССЫЛКА.

Добавлено:
Если ты хочешь растянуть именно wizardImage, то замени nfs.jpg на WizModernImage.bmp

Добавлено:
Вот обновленный архив, качай этот.
Автор: Despofix
Дата сообщения: 15.08.2011 16:42
YURSHAT
форма нестандартного размера
Автор: YURSHAT
Дата сообщения: 15.08.2011 16:55
Despofix

Цитата:
форма нестандартного размера

Хм... а разве размер формы что-то меняет? Ведь ботве абсолютно все равно на каком размере формы рисовать картинки.
Автор: Despofix
Дата сообщения: 15.08.2011 17:26
YURSHAT
просто вы спрашивали что не стандартного размера вот я и ответил а можно как нить растянуть картинку что бы были видны лэйблы, кнопки и т.д
Автор: YURSHAT
Дата сообщения: 15.08.2011 17:54
Despofix

Цитата:
просто вы спрашивали что не стандартного размера вот я и ответил

Просто первый твой вопрос был непонятен так как размер здесь абсолютно неважен.


Цитата:
а можно как нить растянуть картинку что бы были видны лэйблы, кнопки и т.д


К сожалению нет. Стандартные надписи в инно это не TLabel, а TNewStaticText. А у элемента TNewStaticText не свойства Transparent (прозрачности).

ЗЫ. Ко мне можно на ты, я еще не такой старый
Автор: Despofix
Дата сообщения: 15.08.2011 17:58
YURSHAT
как тогда объявлять лэйблы и как сделать чтобы вокруг кнопок не было белого фона? а то если не ошибаюсь при объявлении лжйбла он начинает отображаться на всех страницах

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177

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


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