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

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

Автор: nik1967
Дата сообщения: 10.08.2010 10:54
SotM
Может кинешь в шапку?
Описание: Библиотека для показа прогресс бара с неопределённым временем окончания.
Возможно показать 4 варианта анимации. Дополнительно в файле readme.rtf в архиве. От 4.07.2010
Сам что то ленюсь .
Автор: 1ne2wo
Дата сообщения: 10.08.2010 10:57
nik1967, отличная работа - тру репак к игре Я так понимаю это ещё не финал-версия, т.к. осталось ощущение, что можете ещё лучше. Думаю можно внешний вид ещё подтянуть визуально получше, как минимум нужно что-то сделать с splash.png И возможно стоит муз-кнопку переместить чтобы была более заметной)
Автор: nik1967
Дата сообщения: 10.08.2010 11:01
1ne2wo
Спасибо за добрые слова. Только ежели позже. Сейчас что то задолбался .
Автор: SotM
Дата сообщения: 10.08.2010 11:22
2ALL
Обновил в шапке ссылку на новый isProgressBar
Автор: Alexander61434
Дата сообщения: 10.08.2010 11:29
nik1967, спасибо, интересный скрипт.
Автор: TonyJef
Дата сообщения: 10.08.2010 12:56
nik1967,в скрипте рекодингов размер прогресс бара не меняется,как быть?
Автор: nik1967
Дата сообщения: 10.08.2010 13:01
TonyJef
В каком именно скрипте?
Автор: TonyJef
Дата сообщения: 10.08.2010 13:15
nik1967, в лже R.G.ReCoding
Автор: nik1967
Дата сообщения: 10.08.2010 13:25
TonyJef
А я там не стал заморачиваться созданием п.б., он берётся из скина.
Вот в Xenus 2 без мода на ботва2 там можно изменять п.б., как хочешь.
В принципе и к тому тоже можно прицепить п.б.: [more=прогресс бар] //************************************************ [Прогресс бар - начало] ***************************************************//

// Обработчик нажатия кнопки Отмена
procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
if CurPageID = wpInstalling then // Просто спрячем наш Прогресс Бар
ProgressBar_Edit.Show;
end;

// Функция вызываемая по таймеру
procedure OnTimer(HandleW, msg, idEvent, TimeSys: LongWord);
var
CurrWidth : single;
begin
// Используем текущее состояние стандартного Прогресс Бара (ПБ)
with WizardForm.ProgressGauge do
begin
CurrWidth := ( Position * Width ) / Max; // Вычисляем какой ширины должен быть наш ПБ
if intOldCurrWidth <> Round( CurrWidth ) then // Если ширина пока что такая же, то не будем пока что рисовать, чтобы избежать лишних обновлений формы
begin
intOldCurrWidth := Round( CurrWidth );
// Теперича "рисуем" наш ПБ
ProgressBar_BitmapImage.SetBounds( 0, 0, intOldCurrWidth, ProgressBar_ImageHeight );
ProgressBar_BitmapImage.Show(); // Показываем его во всей красе
end;
end;
end;

procedure CurPageChanged(CurPageID: Integer);
var
pfunc: LongWord;
begin
if CurPageID = wpInstalling then
begin
// Устанавливаем таймер
pfunc := WrapTimerProc( @OnTimer, 4 );
TimerID := SetTimer( 0, 0, 100, pfunc );
intOldCurrWidth := 0;
end;

// Убираем таймер, когда находимся на последней странице.
if CurPageID = wpFinished then
KillTimer( 0, TimerID );
end;

Procedure InitializeWizard();
begin
// Создаем наш Edit, чтобы у нашего ПБ была более-менее нормальная рамка.
ProgressBar_Edit := TEdit.Create( WizardForm );
with ProgressBar_Edit do
begin
// Создаем его на месте стандартного ПБ
Left := WizardForm.ProgressGauge.Left;
Top := WizardForm.ProgressGauge.Top;
Width := WizardForm.ProgressGauge.Width;
Height := WizardForm.ProgressGauge.Height;
Enabled := False;
ReadOnly := True;
// Фоновый цвет
Color := clBlack;
Parent := WizardForm.InstallingPage;
end;

// Распаковываем картинку для нашего ПБ
ExtractTemporaryFile( '{#PB_ImageFile}' );

ProgressBar_BitmapImage := TBitmapImage.Create( WizardForm );
with ProgressBar_BitmapImage do
begin
// Загружаем картинку
Bitmap.LoadFromFile( ExpandConstant( '{tmp}\' ) + '{#PB_ImageFile}' );
Parent := ProgressBar_Edit;
Stretch := True; // Он должен растягиваться
Hide; // Прячем его до поры до времени
end;

// Получаем высоту для картинки
ProgressBar_ImageHeight := ProgressBar_Edit.Height - 2;
// Прячем стандартный ПБ
WizardForm.ProgressGauge.Hide;
end;

//************************************************ [Прогресс бар - конец] ***************************************************//[/more]
тока не охота, да и времени нет.
Автор: zxcvvcxz1
Дата сообщения: 10.08.2010 13:57


Цитата:
Alexa1995


Цитата:
ПОЖАЛУЙСТА дайте код для проверки места на Жёстком дискеесли места мало то кнопка ДАЛЕЕ становится неактивной..
похожее видел в скрипте хитмена


http://rghost.ru/2310088

Автор: vint56
Дата сообщения: 10.08.2010 14:14
Alexa1995

Цитата:
ПОЖАЛУЙСТА дайте код для проверки места на Жёстком дискеесли места мало то кнопка ДАЛЕЕ становится неактивной..

[more=Вот пример скрипта]
[Setup]
AppName=My Program
AppVerName=My Program 1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program

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

[Code]
var
NeedSize:Integer;
FreeMB, TotalMB: Cardinal;
NeedSpaceLabel,FreeSpaceLabel: TLabel;

procedure GetFreeSpaceCaption(Sender: TObject);
var
Path: String;
begin
Path := ExtractFileDrive(WizardForm.DirEdit.Text);
GetSpaceOnDisk(Path, True, FreeMB, TotalMB);
if FreeMB > 1024 then
FreeSpaceLabel.Caption := 'Доступно места на диске: '+ FloatToStr(round(FreeMB/1024*100)/100) + ' GB' else
FreeSpaceLabel.Caption := 'Доступно места на диске: '+ IntToStr(FreeMB)+ ' MB';
if FreeMB < NeedSize then
WizardForm.NextButton.Enabled := False else
WizardForm.NextButton.Enabled := True; end;

procedure GetNeedSpaceCaption;
begin
if NeedSize > 1024 then
NeedSpaceLabel.Caption := 'Требуется места на диске: '+ FloatToStr(round(NeedSize/1024*100)/100) + ' GB' else
NeedSpaceLabel.Caption := 'Требуется места на диске: '+ IntToStr(NeedSize)+ ' MB';end;

procedure InitializeWizard();
begin
NeedSize := 66610;
WizardForm.DiskSpaceLabel.Hide;

NeedSpaceLabel := TLabel.Create(WizardForm);
with NeedSpaceLabel do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(202);
Width := ScaleX(209);
Height := ScaleY(13);
end;

FreeSpaceLabel := TLabel.Create(WizardForm);
with FreeSpaceLabel do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(220);
Width := ScaleX(209);
Height := ScaleY(13);
end;

WizardForm.DirEdit.OnChange := @GetFreeSpaceCaption;
WizardForm.DirEdit.Text := WizardForm.DirEdit.Text + #0;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
begin
if CurPageID=wpSelectDir then
begin
GetNeedSpaceCaption;
if FreeMB < NeedSize then
WizardForm.NextButton.Enabled:=False
end;
end;
end;[/more]
Автор: Forslay
Дата сообщения: 10.08.2010 14:43
Народ, как сделать так, что бы инсталлятор копировал все пустые папки, которые собирает при компиляции...

Например есть такие папки:


Information\IUn\files.txt

Information\lib\
Information\logs\
Information\comp\
Information\java\


Первая, как видите содержит файл, и естественно копируется, а все последующие 4 не содержат файлов, но они обязательны для работы программы.

Как сделать так что бы инсталлятор сохранял пути и копировал эти пустые папки как и должно быть???


Может какой то флаг надо выставить? (Флаг: recursesubdirs обрабатывание подкаталогов не предлагать, он и так есть).
Автор: SotM
Дата сообщения: 10.08.2010 15:20
Forslay
Ээээ, а что, из справки разве убрали описание createallsubdirs ?!?!?!?
Автор: vint56
Дата сообщения: 10.08.2010 15:23
Forslay
[more=вот пример]

[Setup]
AppName=My Program
AppVersion=1.5
;AppVerName=My Program 1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes

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

[Files]
Source: Information\IUn\files.txt; DestDir: {app}\Information\IUn

[Dirs]
Name: {app}\Information
Name: {app}\Information\comp
Name: {app}\Information\IUn
Name: {app}\Information\java
Name: {app}\Information\lib
Name: {app}\Information\logs[/more]
Автор: troyan90
Дата сообщения: 10.08.2010 16:04
не видел здесь подобных скриптов, потому поделюсь. вдруг кому понадобится
собственная кнопка отмены и обзора.
смысл в том чтоб настроить по своему вкусу
http://rghost.ru/2311000
Автор: Forslay
Дата сообщения: 10.08.2010 16:09
Да сорри, порой глупости спрашиваю, спс.
Автор: oZEROth2008
Дата сообщения: 10.08.2010 16:33
помогите пожалуста как убрать ISPrecomp и прикрутить ISDone!! Может кто поможет!? или может скините сразу настроеный?
Автор: zxcvvcxz1
Дата сообщения: 10.08.2010 17:12
Привет всем Не хочу показатсья назойливым ,но всё таки (я опять же со своим скриптом По обновлению DirectX ч\з Веб после установки оснавной программы)
Реально перелопатил весь офф.лайн делал по примеру предложенных скриптов - не получается и всё тут
Просто мне из принципа уже охота глянуть ,что я не так делаю
P.S По умолчяниию Директ лежит в той же папке ,что и основная программа. если для взявшегося помочь будет удобней сунуть его в каталгог так же хорошо,главное чтобы exe DirectX-та подхватывался из Пути Куда устоновленна оснавная программа ну и ещё после обновления можно Del
dxwebsetup.exe http://rghost.ru/2311714
Автор: vint56
Дата сообщения: 10.08.2010 17:45
oZEROth2008 вот http://rghost.ru/2312038
Автор: ChanVS
Дата сообщения: 10.08.2010 18:04
vint56
Не подскажешь чем архивировали http://rghost.ru/2139011
7z выдает ошибку. Unknown method (Неизвесный метод)
Автор: oZEROth2008
Дата сообщения: 10.08.2010 18:06
vint56 неверно задан входной ISunArcExctract !
Автор: vint56
Дата сообщения: 10.08.2010 18:06
zxcvvcxz1 вот http://rghost.ru/2312223


Добавлено:
ChanVS для распаковки нужен 7z 9,15 версия
oZEROth2008 все правельно ты архивы сделай и подставь к установшику

Автор: ChanVS
Дата сообщения: 10.08.2010 18:10
vint56
Спасибо. У меня еще 4.47
Автор: azerbaijanec
Дата сообщения: 10.08.2010 18:14
troyan90
спасибо тебе за скрипт r.g.механиков+isdone
Автор: oZEROth2008
Дата сообщения: 10.08.2010 18:19
всё ту ошибку решил теперь короч ошибка при загрузке unrar.dll
я его прописал и всё равно эта байда!((

Добавлено:
о0 всё сделал! забыл сверху раскоментироватЬ!))) vint56 спасибо за помощь!

Добавлено:
а теперь ещё вопрос! Как правильно самому можно присабачить ISDone к скрипту?
Автор: zxcvvcxz1
Дата сообщения: 10.08.2010 18:45

Цитата:
vint56
Дак получается ,если в системе присутствуют обновы программа обновления автоматом при этом ещё и автоматом скрывается?
Автор: Flamech
Дата сообщения: 10.08.2010 20:03
troyan90

Цитата:
не видел здесь подобных скриптов, потому поделюсь. вдруг кому понадобится
собственная кнопка отмены и обзора.
смысл в том чтоб настроить по своему вкусу
http://rghost.ru/2311000

Можно добавить CancelForm.BorderIcons:=[], чтобы убрать крестик в форме, т.к. он всё равно работает не так, как надо.
Автор: troyan90
Дата сообщения: 10.08.2010 20:07
Flamech
это можно легко исправить.
я делал для себя и исользовал BorderStyle:=bsNone; потому мне этот крестик не мешал
собственно вот исправленное
http://rghost.ru/2312175
+ я еще покапался и добавил одну кнопку на форме обзора папки
а там уж ваше дело что использовать
Автор: oZEROth2008
Дата сообщения: 10.08.2010 21:20
Как правильно самому можно присабачить ISDone к скрипту? подскажите пожалуста!
Автор: azerbaijanec
Дата сообщения: 11.08.2010 05:44
почему у меня картинка в инсталяторе так отображается
сверху картинки идет черная полоска
скрипт r.g.механиков
http://s08.radikal.ru/i181/1008/3b/9e9628510ae6.jpg

Страницы: 1234567891011121314151617181920212223

Предыдущая тема: Skype (Часть 3)


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