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

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

Автор: AleSasha
Дата сообщения: 18.04.2009 22:42
вопрос:

Можно ли все обьемные элементы (Чекбоксы, Кнопки, Строка Пароля, Скроллбар) сделать плоскими?
Если да, то как?

Спасибо!
Автор: SotM
Дата сообщения: 18.04.2009 23:11
AleSasha
Опять тормозим?! Для кого я, блин, две страницы назад писал. Читать умеем или просто любим пофлудить?!
Автор: alexdemon
Дата сообщения: 18.04.2009 23:16
мой собраный setup при установке показывает требуется как минимум 2 гб дискового пространства, а мне надо например чтоб показывал 5 гб. Можно ли в скрипте прописать так чтоб setup показывал требуется как минимум 5 гб дискового пространства если да то где и как.
Автор: doombuster
Дата сообщения: 18.04.2009 23:24
Огромная просьба у кого остались скины аля ИнсталлШиелд, которые делал Sampron. Все ссылки на Датакоде сдохли. Выложите пожалуйста.

Они отличаются от скинов, что лежат в руководстве от Kindly. Вроде кнопули заскинены, транспаренты, кажись, имеются) и т.д.

Выложте, если не трудно)

alexdemon
[more]

Код: [Messages]
DiskSpaceMBLabel=Требуется как минимум (вписать нужный размер) Мб свободного дискового пространства.
Автор: AleSasha
Дата сообщения: 18.04.2009 23:42
SotM


Цитата:
Для кого я, блин, две страницы назад писал [?]. Чтобы кто-то смог ответить на твой вопрос, тебе нужно нормально объяснить что ты имеешь в виду

Ой... действительно... я не заметила... Прошу прощения...

Попробую обьяснить...

Например:

Строка Пароля углублена.
Я бы хотела сделать эту строку в виде простого неуглубленного прямоугольника.

Кнопки - обьемные.
Я бы хотела сделать кнопки в виде плоских прямоугольников, которые сдвигались бы в событии MouseDown и возвращались на место в событии MouseUp.

И другие элементы как Чекбоксы, Скроллбар, Прямоугольник с Лицензией тоже хотела бы сделать плоскими.

Автор: doombuster
Дата сообщения: 18.04.2009 23:48
AleSasha
Вы можете показать пример, того чего Вы хотите. Где Вы это видели? Сделайте скриншот, или это только Ваша фантазия?
Автор: alexdemon
Дата сообщения: 18.04.2009 23:53
doombuster
Большое спасибо за советы очень помогло.
Автор: AleSasha
Дата сообщения: 18.04.2009 23:54
doombuster

Цитата:
Где Вы это видели?

Нигде не видела. Хотела бы сделать. Пока это моя фантазия...
Автор: SotM
Дата сообщения: 19.04.2009 00:05
AleSasha
Ээээ, а каким образом другие люди могут видеть эту фантазию? Прочитав мысли?
Нужна картинка, скриншот и т.д., а на словах это не ясно.
Автор: AleSasha
Дата сообщения: 19.04.2009 00:11
SotM

Цитата:
Нужна картинка, скриншот и т.д., а на словах это не ясно

Ну что же тут не ясно?

Все обьемные элементы нужно сделать плоскими.
Из 3D сделать 2D...
Автор: msatmb
Дата сообщения: 19.04.2009 00:34
Есть самораспаковывающийся 7zip архив, который после распаковки выдает окошко что мол все установлено, нажмите "Ок". Можно сделать так, чтобы эта "Ок" нажималось автоматом и не показывалось? Параметр "-у" и Flags: runhidden не помогает, окошко все-равно появляется.
Автор: doombuster
Дата сообщения: 19.04.2009 00:44
AleSasha
[more=Примерно так]


[/more]

тогда используйте ISSkin _http://isskin.codejock.com/
Автор: msatmb
Дата сообщения: 19.04.2009 00:47
и еще, подскажите как объединить вот [more=этот]
#define TIME_FOR_VIEW 15
[Code]
////////////////////////////////////////////////////
{Установка слайдшоу на окне инсталятора}
type
TProc = procedure(HandleW, msg, idEvent, TimeSys: LongWord);

var
TimerID: LongWord;
currTime: Integer;
SplashImage: TBitmapImage;

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 OnTimer(HandleW, msg, idEvent, TimeSys: LongWord);
begin
currTime := currTime + 1;
case currTime of
{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_2.bmp')) end;
2*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_3.bmp')) end;
3*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_4.bmp')) end;
4*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_5.bmp')) end;
5*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_6.bmp')) end;
6*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_7.bmp')) end;
7*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_8.bmp')) end;
8*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_9.bmp')) end;
9*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_10.bmp'))end;
end;
if CurrTime = 9*{#TIME_FOR_VIEW} then CurrTime := -1;
end;
///////////////////////////////////////////////////

procedure InitializeWizard();
begin
///////////////////////////////////////////////////////////
{Изменение окна инсталятора с пермещение прогрессбара}
ExtractTemporaryFile('Image_1.bmp');
ExtractTemporaryFile('Image_2.bmp');
ExtractTemporaryFile('Image_3.bmp');
ExtractTemporaryFile('Image_4.bmp');
ExtractTemporaryFile('Image_5.bmp');
ExtractTemporaryFile('Image_6.bmp');
ExtractTemporaryFile('Image_7.bmp');
ExtractTemporaryFile('Image_8.bmp');
ExtractTemporaryFile('Image_9.bmp');
ExtractTemporaryFile('Image_10.bmp');

currTime := 0;

WizardForm.ProgressGauge.Parent := WizardForm;
WizardForm.ProgressGauge.Top := WizardForm.CancelButton.Top + 10;
WizardForm.ProgressGauge.Left := ScaleX(10);
WizardForm.ProgressGauge.Width := WizardForm.Width - WizardForm.CancelButton.Width - ScaleX(40);
WizardForm.ProgressGauge.Height := 12;
WizardForm.ProgressGauge.Hide;
WizardForm.StatusLabel.Parent := WizardForm;
WizardForm.StatusLabel.Left := ScaleX(10);
WizardForm.StatusLabel.Width := WizardForm.ProgressGauge.Width;
WizardForm.StatusLabel.Top := WizardForm.ProgressGauge.Top - ScaleY(18);
WizardForm.StatusLabel.Hide;

SplashImage := TBitmapImage.Create(WizardForm);
SplashImage.Top := 0;
SplashImage.Left := 0;
SplashImage.Width := WizardForm.MainPanel.Width;
SplashImage.Height := WizardForm.Bevel.Top;
SplashImage.Parent := WizardForm.InnerPage;
SplashImage.Stretch := True;
SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_1.bmp'));
SplashImage.Hide;
///////////////////////////////////////////////////////////
end;
procedure CurPageChanged(CurPageID: Integer);
var
pfunc: LongWord;
begin
/////////////////////////////////////////
{Здесь код показа на странице Инсталл измененного прогрессбара}
if (CurPageID = wpInstalling) then
begin
pfunc := WrapTimerProc(@OnTimer, 5);
TimerID := SetTimer(0, 0, 1000, pfunc);

WizardForm.InnerNotebook.Hide;
WizardForm.Bevel1.Hide;
WizardForm.MainPanel.Hide;
WizardForm.PageNameLabel.Hide;
WizardForm.PageDescriptionLabel.Hide;


WizardForm.ProgressGauge.Show;
SplashImage.Show;
WizardForm.StatusLabel.Show;

WizardForm.CancelButton.Enabled :=True;
end
else
begin

WizardForm.ProgressGauge.Hide;
SplashImage.Hide;
WizardForm.StatusLabel.Hide;
//WizardForm.FilenameLabel.Hide;

if (CurPageID > wpInstalling) and (CurPageID < wpFinished) then
begin
WizardForm.InnerNotebook.Show;
WizardForm.Bevel1.Show;
WizardForm.MainPanel.Show;
WizardForm.PageNameLabel.Show;
WizardForm.PageDescriptionLabel.Show;
end;

end;
//////////////////////////////////////////////////////////////
end;
[/more]
код
с запуском [more=bat-ника]
[Files]
Source: InnoCallback.dll; Flags: dontcopy
Source: test.bat; DestDir: {tmp}; AfterInstall: Unpack(); Flags: ignoreversion

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

var
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 OnTimer(HandleW, msg, idEvent, TimeSys: LongWord);
begin
with WizardForm.ProgressGauge do
Position:= (Position + 1) mod Max;
end;

procedure Unpack();
var
ResultCode: Integer; pfunc: LongWord;
begin
WizardForm.ProgressGauge.Position:= 0;
WizardForm.ProgressGauge.Max:= 100;

pfunc:= WrapTimerProc(@OnTimer, 4);
TimerID:= SetTimer(0, 0, 50, pfunc);
Exec(ExpandConstant('{tmp}\test.bat'), '', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
end;
[/more], но так, чтобы слайд-шоу после того как начал работать батник не полетело с огромной скоростью, а отрабатывало то время на картинку что ему было задано в первом коде. Понимаю, что что-то надо добавить, но вот что....иль объединить по умному
Автор: Rover_2000
Дата сообщения: 19.04.2009 02:39
Кто нибудь может подсказать как сделать чтоб при установке была такая же распаковка как ТУТ???
Автор: DeKaNszn
Дата сообщения: 19.04.2009 09:10
spider91


Цитата:
спасибо. но пишет unknown identifier ClientHeight


добавь в код

Код: [no]const
ClientWidth=600;
ClientHeight=430;[/no]
Автор: msatmb
Дата сообщения: 19.04.2009 10:25
Rover_2000
На предыдущих страница народ выкладывал свои скрипты и было обсуждение этого вопроса. Посмотри, там все с комментариями.
Автор: antoniooooo2
Дата сообщения: 19.04.2009 11:08
Скажите пожалуйста во многих скриптах на этом форуме часто используется procedure InitializeWizard(); поэтому приходится чтобы объеденить эту процедуру пихать их друг в дружку, но при очень сложном скрипте уже начинаю путаться какой end; от какого begin , и если вдруг какая то функция окажется не нужна думаю как бы не удалить прицепом что нибудь.
конечно как вариант коментировать в скрипте что и как делаю, но просто ради любопытства интересно какие ещё можно использовать процедуры для достижения той же цели что в данной procedure InitializeWizard();?
Автор: Qarma
Дата сообщения: 19.04.2009 11:24
Rover_2000


Цитата:
Кто нибудь может подсказать как сделать чтоб при установке была такая же распаковка как ТУТ???

Выкладывали на прошлых страницах

Добавлено:
Как сделать обводку у текста, допустим текст белый а обводка чёрная
Автор: skeptik_vdm
Дата сообщения: 19.04.2009 12:35
AleSasha
Попробуй вставить это в секцию Setup

FlatComponentsList=true
Автор: Qarma
Дата сообщения: 19.04.2009 12:55
Вот участок кода:

Код:
PageNameLabel := TLabel.Create(WizardForm);
with PageNameLabel do
begin
Left := ScaleX(45);
Top := ScaleY(10);
Width := ScaleX(300);
Height := ScaleY(14);
AutoSize := False;
WordWrap := True;
Font.Color := clwhite;
Font.Style := [fsBold];
Transparent := True;
Parent := WizardForm.MainPanel;
end;
Автор: SiluetPro
Дата сообщения: 19.04.2009 13:22
как сделать, что бы надпись "Создать ярлык на рабочем столе" была на странице выбора директории для установки?
Автор: Qarma
Дата сообщения: 19.04.2009 13:29
SiluetPro


Код: [Icons]

Name: {commondesktop}\Lost Planet Colonies; Filename: {app}\LPCLauncher.exe; WorkingDir: {app}; Check: MakeDesktopIcon
Автор: AleSasha
Дата сообщения: 19.04.2009 13:33
doombuster


Цитата:
Примерно так [?]

тогда используйте ISSkin _http://isskin.codejock.com/

Да, примерно так... но очень примерно...
Там всего 4 бесплатных скина, которые совсем мне не подходят.

Мне нужен просто код, касающийся моей задачи.

Спасибо.
Автор: Qarma
Дата сообщения: 19.04.2009 13:35

Цитата:
Вот участок кода:

Код:

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

Надо сделать обводу. Всё перерыл, не где не нашёл.


HELP ME!
Автор: AleSasha
Дата сообщения: 19.04.2009 13:35
skeptik_vdm

Цитата:
Попробуй вставить это в секцию Setup

FlatComponentsList=true

Нет, не помогает, к сожалению...
Автор: SiluetPro
Дата сообщения: 19.04.2009 13:41
Qarma спасибо!, а как сделать, что бы надпись "Запустить игру после установки" была на странице выбора директории для установки? (чуть ниже чем для создания ярлыка)?
Автор: Serega0675
Дата сообщения: 19.04.2009 13:44
AleSasha
у меня складывается впечатление, всё точно так же как в фильме: а у Вас есть такое же, но с сиреневыми пуговицами - нет... будем искать... не надо напрягать своими фантазиями других... из того, что вы сказали

Цитата:
Можно ли все объемные элементы (Чекбоксы, Кнопки, Строка Пароля, Скроллбар) сделать плоскими?
можно сделать вывод, познания в программировании у вас есть, значит в помощь вам help и google... и решать за вас ваши фантазии никто не будет...

P.S.

Цитата:
skeptik_vdm
Попробуй вставить это в секцию Setup
FlatComponentsList=true

Цитата из Справки:
Цитата:
При значении yes инсталлятор будет использовать "плоские" checkbox'ы для списка компонентов. Иначе будет использовать "3D" checkbox'ы.

Т.е. плоские чебоксы будут, только на странице выбора компонентов…
Автор: Qarma
Дата сообщения: 19.04.2009 13:55
SiluetPro


Цитата:
а как сделать, что бы надпись "Запустить игру после установки" была на странице выбора директории для установки? (чуть ниже чем для создания ярлыка)?




Код: [Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#MyAppName}}"; Check: PlayGame; Flags: nowait skipifsilent
Автор: AleSasha
Дата сообщения: 19.04.2009 14:05
Serega0675
Спасибо, уважаемый, за добрые слова и советы...

Help и Google я использую.


Цитата:
не надо напрягать своими фантазиями других... и решать за вас ваши фантазии никто не будет...


Не думаю, что стоит говорить от имени других участников форума...


Цитата:
Т.е. плоские чебоксы будут, только на странице выбора компонентов…


У меня, как я уже писала, этого не происходит.
Почему? Пока не знаю...

Спасибо.

Автор: Qarma
Дата сообщения: 19.04.2009 14:06
А тут скрещено: иконка на рабочий стол и запуск игры после установки
[more]

Код: [Run]
Filename: "{app}\***.exe"; Flags: nowait skipifsilent; Check: PlayGame

[Icons]

Name: {commondesktop}\***.exe; Filename: {app}\***.exe; WorkingDir: {app}; Check: MakeDesktopIcon

[Code]
var
Game: TCheckBox;
DesktopIcon: TCheckBox;
function PlayGame: Boolean;
begin
Result:=Game.Checked;end;
function MakeDesktopIcon: Boolean;
begin
Result:=DesktopIcon.Checked;end;

procedure InitializeWizard();
begin
Game := TCheckBox.Create(WizardForm);
with Game do
begin
Parent := WizardForm.SelectDirPage;
Caption := 'Запустить игру после установки';
Left := ScaleX(0);
Top := WizardForm.DirEdit.Top+45;
Width := ScaleX(400);
Height := ScaleY(35);
TabOrder := 0;
Checked := True;
end;
begin
DesktopIcon := TCheckBox.Create(WizardForm);
with DesktopIcon do
begin
Parent := WizardForm.SelectDirPage;
Caption := 'Добавить ярлык на Рабочий стол';
Left := ScaleX(0);
Top := WizardForm.DirEdit.Top+35;
Width := ScaleX(400);
Height := ScaleY(15);
TabOrder := 0;
Checked := True;
end
end;
end;

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071

Предыдущая тема: в очередной раз босудим антивиры?


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