Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 5]

Закрытая тема
Настройки темы
Скрипты Inno Setup. Помощь и советы [часть 5]

Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1264
Благодарности: 1024


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: El Sanchez
Дата: 16-02-2015
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
  • ISTool - неплохой редактор скриптов Inno Setup.
    Последняя версия: 5.3.0.1 [29.09.2009] - Скачать | зеркало;

  • Inno Script Generator - генератор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать | зеркало на русифицированную программу;
    Примечание: Родной сайт www.hisoft2000.de более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы.
    Последняя версия: 2.0.8 [12.11.2006] - Скачать;
    Примечание: Родной сайт http://isfd.kaju74.de/index.php?isfd более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup GameScript Generator - программа генерирует скрипты для Inno Setup . С помощью GameScript Generator и Inno Setup вы сможете быстро создать простенький инсталляционный пакет для любой игры. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации;

  • ISSkin - Программа для создания и добавления в инсталлятор скинов. Инструкция.
    Последняя версия: 3.0.0.0 [19.01.2010] - Скачать;

  • ISSJoiner - Программа для объединения нескольких скриптов InnoSetup в один.
    Последняя версия: 3.0 [23.07.2009]

  • Converter - Программа конвертирует reg-файлы в формат *.iss (формат скриптов Inno Setup).
    Последняя версия: 0.1.4 [13.03.2010] - Скачать;


Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:
Inno Setup [все вопросы] часть 1
Inno Setup [все вопросы] часть 2
Скрипты Inno Setup. Помощь и советы [часть 3]
Скрипты Inno Setup. Помощь и советы [часть 4]

Отправлено: 03:49, 21-05-2012

 

Аватара для Johny777

Ветеран


Сообщения: 649
Благодарности: 444

Профиль | Отправить PM | Цитировать


1.
как во втором примере (если я правильно понял)

2.
размести на панелях
http://sendfile.su/604099
код:
читать дальше »
Код: Выделить весь код
[Setup]
AppName=Test Mouse Event
AppVersion=1.5
DefaultDirName={pf}\My Application
SolidCompression=yes
Compression=lzma/ultra
PrivilegesRequired=none
OutputDir=userdocs:Inno Setup Examples Output

[Files]
Source: "Cremator_poster.bmp"; DestDir: {app}; Check: A
Source: "Airex_tower_large.bmp"; DestDir: {app}; Check: B

Source: "Alyx_Vance_head.bmp"; DestDir: {app}; Check: C
Source: "Gordon_head_cover.bmp"; DestDir: {app};  Check: D


[  Code]

var
  Panel1: TPanel;
  NewRadioButton1: TNewRadioButton;
  NewRadioButton2: TNewRadioButton;
  Panel2: TPanel;
  NewRadioButton3: TNewRadioButton;
  NewRadioButton4: TNewRadioButton;
  
function A: Boolean;
begin
  Result:=NewRadioButton1.Checked;
end;

function B: Boolean;
begin
  Result:=NewRadioButton2.Checked;
end;

function C: Boolean;
begin
  Result:=NewRadioButton3.Checked;
end;


function D: Boolean;
begin
  Result:=NewRadioButton4.Checked;
end;


procedure InitializeWizard();
begin
  { Panel1 }
  Panel1 := TPanel.Create(WizardForm);
  with Panel1 do
  begin
    Parent := WizardForm.SelectDirPage;
    Left := ScaleX(104);
    Top := ScaleY(104);
    Width := ScaleX(185);
    Height := ScaleY(57);
    BevelOuter := bvNone;
    Caption := '';
  end;

  { NewRadioButton1 }
  NewRadioButton1 := TNewRadioButton.Create(WizardForm);
  with NewRadioButton1 do
  begin
    Parent := Panel1;
    Left := ScaleX(16);
    Top := ScaleY(8);
    Width := ScaleX(113);
    Height := ScaleY(17);
    Checked := True;
  end;

  { NewRadioButton2 }
  NewRadioButton2 := TNewRadioButton.Create(WizardForm);
  with NewRadioButton2 do
  begin
    Parent := Panel1;
    Left := ScaleX(16);
    Top := ScaleY(32);
    Width := ScaleX(113);
    Height := ScaleY(17);
  end;

  { Panel2 }
  Panel2 := TPanel.Create(WizardForm);
  with Panel2 do
  begin
    Parent := WizardForm.SelectDirPage;
    Left := ScaleX(104);
    Top := ScaleY(168);
    Width := ScaleX(185);
    Height := ScaleY(62);
    BevelOuter := bvNone;
    Caption := '';
  end;

  { NewRadioButton3 }
  NewRadioButton3 := TNewRadioButton.Create(WizardForm);
  with NewRadioButton3 do
  begin
    Parent := Panel2;
    Left := ScaleX(16);
    Top := ScaleY(0);
    Width := ScaleX(113);
    Height := ScaleY(17);
  end;

  { NewRadioButton4 }
  NewRadioButton4 := TNewRadioButton.Create(WizardForm);
  with NewRadioButton4 do
  begin
    Parent := Panel2;
    Left := ScaleX(16);
    Top := ScaleY(24);
    Width := ScaleX(113);
    Height := ScaleY(17);
    Checked := True;
  end;
end;


3.
Цитата GoshaPolo:
Например на картинку нет события OnEnter »
есть "OnMouseEnter"
архив с фалами
http://sendfile.su/604084
код:
читать дальше »
Код: Выделить весь код
[Setup]
AppName=Test Mouse Event
AppVersion=1.5
DefaultDirName={pf}\My Application
SolidCompression=yes
Compression=lzma/ultra
PrivilegesRequired=none
OutputDir=userdocs:Inno Setup Examples Output

[Files]
Source: "Cremator_poster.bmp"; Flags: dontcopy solidbreak
Source: "Airex_tower_large.bmp"; Flags: dontcopy solidbreak

[  Code]
var
  Pic: TBitmapImage;

procedure Navodim_na_kartinku(Sender: TObject); /// при наведении
begin
   Pic.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Airex_tower_large.bmp'));  /// грузим в картинку другой файл картинки
end;

//procedure Navodim_na_kartinku(Sender: TObject; Shift: TShiftState; X, Y: Integer); /// при наведении
//begin
//   Pic.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Airex_tower_large.bmp'));  /// грузим в картинку другой файл картинки
//end;
  
procedure Ubiraem_Mish(Sender: TObject); /// уводим курсор с картинки
begin
   Pic.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Cremator_poster.bmp'));  /// грузим в картинку файл картинки по умолчанию
end;



procedure InitializeWizard();
begin

  with WizardForm do
  begin
    AutoScroll := False;
    ClientHeight := ScaleY(637);
    ClientWidth := ScaleX(523);
    OuterNotebook.Visible := False;
    CancelButton.SetBounds(ScaleX(450), ScaleY(600), ScaleX(60), ScaleY(20));
    Bevel.Hide;
  end;
    
    ExtractTemporaryFile('Cremator_poster.bmp'); // извлекаем в темп обе картинки
    ExtractTemporaryFile('Airex_tower_large.bmp');
        
    Pic := TBitmapImage.Create(WizardForm) 
    with Pic do
      begin
      Parent := WizardForm;
      Left := ScaleX(20);
      Top := ScaleY(20);
      Bitmap.LoadFromFile(ExpandConstant('{tmp}\Cremator_poster.bmp'));
      AutoSize := True;
      
      OnMouseEnter := @Navodim_na_kartinku;
      //OnMouseMove := @Navodim_na_kartinku;    /// при наведении (вариант)
      OnMouseLeave := @Ubiraem_Mish; /// когда курсор за пределами картинки
    end;

end;


procedure CurPageChanged(CurPageID: Integer); 
begin
  WizardForm.NextButton.Visible := False;
end;

Последний раз редактировалось Johny777, 30-05-2012 в 15:13.

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:41, 30-05-2012 | #111



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для GoshaPolo

Новый участник


Сообщения: 25
Благодарности: 2

Профиль | Отправить PM | Цитировать


Johny777, хм... не хочет у меня компилятор 5.4.3 принимать OnMouseEnter. Пишет, что неизвестный идентификатор.

Отправлено: 13:16, 30-05-2012 | #112


Аватара для Johny777

Ветеран


Сообщения: 649
Благодарности: 444

Профиль | Отправить PM | Цитировать


GoshaPolo,
у меня тоже 5.4.3.
всё компилится
(ANSI)
скачай архив с файлами
если не получится ставь заново или скачай InnoUltra из ссылки моего поста
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:22, 30-05-2012 | #113


Аватара для GoshaPolo

Новый участник


Сообщения: 25
Благодарности: 2

Профиль | Отправить PM | Цитировать


Johny777, установил InnoUltra и все переменные заработали как следует. Спасибо! По RadioButton тоже все верно поняли, все получилось. Только вот маленький вопросик по панелям. Можно ли сделать фон панели прозрачным?

И еще в догонку, последние четыре интересующих меня вопроса, больше не будет:

1. Как поменять название окна, которое отображается в панели задач? Со стандартного "Установить" на что-нибудь свое.
2. Как поменять заголовок окна деинсталяции?
3. Как поменять текст в первом окне деисталяции, где пишется "Вы действительно хотите удалить..."?
3. Как поменять текст в завершающем деинсталяцию окне, где пишется "Программа *** была полностью удалена с Вашего компьютера."?

Отправлено: 14:22, 30-05-2012 | #114


Аватара для GoshaPolo

Новый участник


Сообщения: 25
Благодарности: 2

Профиль | Отправить PM | Цитировать


Johny777, вот сейчас появился вопрос

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

И еще микро-вопросик всплыл. Какой ID имеет моя страница, вставленная после wpSelectComponents? Не могу ее скрыть никак.

Отправлено: 15:19, 30-05-2012 | #115


Аватара для Raf-9600

Старожил


Сообщения: 398
Благодарности: 21

Профиль | Отправить PM | Цитировать


У меня есть замечательный скрипт который добавляет зависимость от не дочерних компонентов, но есть в нем одно неудобство: он завязан на номерах компонентов. Собсно можно ли его переделать, чтобы зависимость была от названия компонента?
Т.е. желательно не от "Description", а от "Name".

читать дальше »
Код: Выделить весь код
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application


[Components]
Name: "GameDiablo2"; Description: Diablo 2; Flags: fixed; Types: full compact custom;

Name: GameLoD; Description: Lord of Destruction; Types: full;

Name: Version; Description: Версия; Flags: fixed; Types: full compact custom;
Name: Version\107; Description: 1.07; Flags: exclusive;
Name: Version\108; Description: 1.08; Flags: exclusive;
Name: Version\109; Description: 1.09; Flags: exclusive; Types: full;

Name: NoCD; Description: NoCD; Types: full;

[c0de]
var
OldEvent_ComponentsListClickCheck: TNotifyEvent;

procedure ComponentsListClickCheck(Sender: TObject);
begin
If IsComponentSelected('GameLoD') then begin
WizardForm.ComponentsList.ItemEnabled[3]:=True;
WizardForm.ComponentsList.ItemEnabled[4]:=True;
end else begin
WizardForm.ComponentsList.ItemEnabled[3]:=False;
WizardForm.ComponentsList.ItemEnabled[4]:=False;
OldEvent_ComponentsListClickCheck(Sender);
end;
end; 

procedure InitializeWizard();
begin
with WizardForm.ComponentsList do
begin
OldEvent_ComponentsListClickCheck := OnClickCheck;
OnClickCheck := @ComponentsListClickCheck;
ItemEnabled[3]:=True;
end;
end;

Отправлено: 15:31, 30-05-2012 | #116


Аватара для Gnom_aka_Lexander

Ветеран


Сообщения: 978
Благодарности: 564

Профиль | Сайт | Отправить PM | Цитировать


Цитата Johny777:
только ParentBackground := True; (цвет) »
На юникоде не только цвет, но и картинка
Цитата Johny777:
и радиобаттоны тоже не сделать прозрачными »
Аналогично - юникод их автоматом прозрачными делает.
Raf-9600, посмотри на свойство ItemName - вроде-бы то, что нужно.

GoshaPolo, ID страниц по порядку:
читать дальше »
wpWelcome = 1;
wpLicense = 2;
wpPassword = 3;
wpInfoBefore = 4;
wpUserInfo = 5;
wpSelectDir = 6;
wpSelectComponents = 7;
wpSelectProgramGroup = 8;
wpSelectTasks = 9;
wpReady = 10;
wpPreparing = 11;
wpInstalling = 12;
wpInfoAfter = 13;
wpFinished = 14;

-------
Я люблю помогать. Но не путайте: "Помогите мне" и "Сделайте за меня" - это совершенно разные понятия.


Отправлено: 15:43, 30-05-2012 | #117


Аватара для YURSHAT

Старожил


Сообщения: 163
Благодарности: 78

Профиль | Отправить PM | Цитировать


Цитата GoshaPolo:
Какой ID имеет моя страница, вставленная после wpSelectComponents? Не могу ее скрыть никак. »
Код: Выделить весь код
...
var
  MyPage: TWizardPage;

procedure CurPageChanged(CurPageID: Integer);
begin
  if CurPageID= MyPage.ID then
  ...
end;
Цитата GoshaPolo:
Это не есть хорошо, что RadioButton прозрачной нельзя сделать. А можно ли тогда чекбоксами реализовать подобное? »
Чекбоксы тоже прозрычными сделать нельзя (дефолтные у анси)
Решение следующее: Создаете радиокнопку без надписи справа, создаете отдельно надпись к ней (элемент TLabel с Transparent:=True). Пишите процедурку клик по TLabel=клик по радиокнопочке. И в итоге получаете прозрачную радиокнопочку. Примеров таких кнопочек и чекбоксов - немеряно, поэтому ищем (скрипт Prototype от Shegorat к примеру)

-------
Если я знаю, что знаю мало, я добьюсь того, чтобы знать больше... В.И. Ленин
Krinkels.org - сжатие данных и создание инсталляторов


Отправлено: 15:44, 30-05-2012 | #118


Аватара для Raf-9600

Старожил


Сообщения: 398
Благодарности: 21

Профиль | Отправить PM | Цитировать


Цитата Gnom_aka_Lexander:
посмотри на свойство ItemName - вроде-бы то, что нужно. »
А можно пример использования? Просто если честно, то я не шарю в этом всем

Отправлено: 15:49, 30-05-2012 | #119


Аватара для GoshaPolo

Новый участник


Сообщения: 25
Благодарности: 2

Профиль | Отправить PM | Цитировать


Цитата Gnom_aka_Lexander:
ID страниц по порядку:
читать дальше » »
Про ID стандартных страниц я знаю. Меня интересует ID страницы созданной мной дополнительно.

Цитата YURSHAT:
Чекбоксы тоже прозрычными сделать нельзя (дефолтные у анси) »
В том то и дело, что на АНСИ чекбоксы если поставить размером 13х13, фона по бокам нет, поскольку они квадратные. А RadioButton при размерах 13х13, имеют фон по краям.

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

Отправлено: 16:01, 30-05-2012 | #120



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 5]

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 4] El Sanchez Автоматическая установка приложений 2099 22-05-2012 23:16
Скрипты Inno Setup. Помощь и советы [часть 3] Serega Автоматическая установка приложений 3755 26-10-2011 17:58
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] Serega Автоматическая установка приложений 2651 08-11-2010 18:34
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59
Inno Setup tradeukraine Вебмастеру 3 13-06-2006 20:39




 
Переход