Соедините, пожалуйста, 2 скрипта!

Александр85

Новичок
Здравствуйте!

Соедините, пожалуйста, корректно эти 2 скрипта, не получается, тут один скрипт на пропуск всех страниц, только с выдачей "запроса установить, да, нет"? А второй на шифрование-пароль чисто просто от декомпиляции. Пытался соединить... Компилироваться, компилируется, но при установке - автоматом пароль не вводится и "ругается", естественно на то, что файлы распаковать не может, т.к. они же зашифрованы!

Код:
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[code]
function InitializeSetup(): Boolean;
begin
  Result:= MsgBox('Вы действительно хотите установить программу?', mbInformation, MB_YESNO)= IDYES;
end;

function ShouldSkipPage(PageID: Integer): Boolean;
begin
  Result:=true;//  просто пропускаем все страницы Останется страница готовности - ее просто так не скрыть.
end;

procedure WizardFormShow(Sender: TObject);
begin
  WizardForm.NextButton.OnClick(nil); // нажимает на кнопку далее, в момент показа окна инсталла.
end;

procedure InitializeWizard();
begin
  with WizardForm do
  begin
    Left:=-10000; //  задвигаем окно инсталла далеко за край экрана, чтоб его совсем не было видно.
    Show; //  без этой строчки будет ошибка при вызове OnShow.
    OnShow := @WizardFormShow;
  end;
end;

procedure DeinitializeSetup();
begin
  MsgBox('Программа установлена', mbInformation, MB_OK);
end;
Код:
[Setup]
Encryption=Yes
Password=12345

[Code]
procedure InitializeWizard();
begin
WizardForm.PasswordEdit.Visible := False;
WizardForm.PasswordEdit.Text := '12345';
end;

procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpPassword then
WizardForm.NextButton.OnClick(WizardForm.NextButton);
end;

Если есть другой вариант, буду рад.
Спасибо.
 
Последнее редактирование:

Хамик

Старожил
@Александр85, а в чем собственно сложность, берете тело и перемещаете куда нужно.
code_language.pascal:
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
Encryption=Yes
Password=12345

[code]
function InitializeSetup(): Boolean;
begin
  Result:= MsgBox('Вы действительно хотите установить программу?', mbInformation, MB_YESNO)= IDYES;
end;

function ShouldSkipPage(PageID: Integer): Boolean;
begin
  Result:=true;//  просто пропускаем все страницы Останется страница готовности - ее просто так не скрыть.
end;

procedure WizardFormShow(Sender: TObject);
begin
  WizardForm.NextButton.OnClick(nil); // нажимает на кнопку далее, в момент показа окна инсталла.
end;

procedure InitializeWizard();
begin
  WizardForm.PasswordEdit.Visible := False;
  WizardForm.PasswordEdit.Text := '12345';
  with WizardForm do
  begin
    Left:=-10000; //  задвигаем окно инсталла далеко за край экрана, чтоб его совсем не было видно.
    Show; //  без этой строчки будет ошибка при вызове OnShow.
    OnShow := @WizardFormShow;
  end;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpPassword then
WizardForm.NextButton.OnClick(WizardForm.NextButton);
end;

procedure DeinitializeSetup();
begin
  MsgBox('Программа установлена', mbInformation, MB_OK);
end;
 

Yaroslav950

Участник
@Александр85,я не помню есть программа такая, чтобы слепить все воедино. На сервере поищи.
 

Александр85

Новичок
@Александр85, а в чем собственно сложность, берете тело и перемещаете куда нужно.
code_language.pascal:
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
Encryption=Yes
Password=12345

[code]
function InitializeSetup(): Boolean;
begin
  Result:= MsgBox('Вы действительно хотите установить программу?', mbInformation, MB_YESNO)= IDYES;
end;

function ShouldSkipPage(PageID: Integer): Boolean;
begin
  Result:=true;//  просто пропускаем все страницы Останется страница готовности - ее просто так не скрыть.
end;

procedure WizardFormShow(Sender: TObject);
begin
  WizardForm.NextButton.OnClick(nil); // нажимает на кнопку далее, в момент показа окна инсталла.
end;

procedure InitializeWizard();
begin
  WizardForm.PasswordEdit.Visible := False;
  WizardForm.PasswordEdit.Text := '12345';
  with WizardForm do
  begin
    Left:=-10000; //  задвигаем окно инсталла далеко за край экрана, чтоб его совсем не было видно.
    Show; //  без этой строчки будет ошибка при вызове OnShow.
    OnShow := @WizardFormShow;
  end;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpPassword then
WizardForm.NextButton.OnClick(WizardForm.NextButton);
end;

procedure DeinitializeSetup();
begin
  MsgBox('Программа установлена', mbInformation, MB_OK);
end;
Что-то не так? Решил проверить - указал в секции SETUP, другой пароль, отличающийся от указанного в секции CODE и также и наоборот - программа всё равно устанавливается - файлы распаковываются, значит шифрование и авто-ввод пароля не отрабатывают?
Отдельно скрипт 2, что выше шифрует и защищает паролем файлы от распаковки. Посмотрите, пожалуйста!
 

Andreo Fadio

Старожил
Отдельно скрипт 2, что выше шифрует и защищает паролем файлы от распаковки.
Во втором скрипте у вас нет скрытия\пропуска страниц. А так страницу ввода вы пропускаете и действие на странице ввода пароля и клик по кнопке тоже. Вот и не работает.

Если объединять эти два скрипта в один, то надо переписать работу с паролем:
Код:
#define Pass1 "12346" ;Пароль в секции Setup
#define Pass2 "12345" ;Пароль в edit на странице ввода

[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
Encryption=Yes
Password={#Pass1}

[code]
var
InstallOn: boolean;

function InitializeSetup(): Boolean;
begin
  Result:= MsgBox('Вы действительно хотите установить программу?', mbInformation, MB_YESNO)= IDYES;
end;

function ShouldSkipPage(PageID: Integer): Boolean;
begin
  Result:= True;
  if (PageID=wpPassword) then begin
   if '{#Pass1}' = WizardForm.PasswordEdit.Text then begin
    Result:= True;
    InstallOn:= True;
   end else begin
    Result:= False;
    InstallOn:= False;
    WizardForm.Close;
   end;
  end;
end;

procedure WizardFormShow(Sender: TObject);
begin
  WizardForm.NextButton.OnClick(nil);
end;

procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
WizardForm.Hide;
if not InstallOn then
   MsgBox('Программа не установлена!', mbError, MB_OK); 
Confirm:=False;
Cancel:=True;
end;

procedure InitializeWizard();
begin
  with WizardForm do
  begin
    Left:=-10000;
    Show;
    OnShow := @WizardFormShow;
  end;
  WizardForm.PasswordEdit.Visible:= False;
  WizardForm.PasswordEdit.Text:= '{#Pass2}';
end;

procedure DeinitializeSetup();
begin
  if InstallOn then
   MsgBox('Программа установлена!', mbInformation, MB_OK);
end;
 
Последнее редактирование:

Александр85

Новичок
Во втором скрипте у вас нет скрытия\пропуска страниц. А так страницу ввода вы пропускаете и действие на странице ввода пароля и клик по кнопке тоже. Вот и не работает.

Если объединять эти два скрипта в один, то надо переписать работу с паролем:
Код:
#define Pass1 "12346" ;Пароль в секции Setup
#define Pass2 "12345" ;Пароль в edit на странице ввода

[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
Encryption=Yes
Password={#Pass1}

[code]
var
InstallOn: boolean;

function InitializeSetup(): Boolean;
begin
  Result:= MsgBox('Вы действительно хотите установить программу?', mbInformation, MB_YESNO)= IDYES;
end;

function ShouldSkipPage(PageID: Integer): Boolean;
begin
  Result:= True;
  if (PageID=wpPassword) then begin
   if '{#Pass1}' = WizardForm.PasswordEdit.Text then begin
    Result:= True;
    InstallOn:= True;
   end else begin
    Result:= False;
    InstallOn:= False;
    WizardForm.Close;
   end;
  end;
end;

procedure WizardFormShow(Sender: TObject);
begin
  WizardForm.NextButton.OnClick(nil);
end;

procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
WizardForm.Hide;
if not InstallOn then
   MsgBox('Программа не установлена!', mbError, MB_OK);
Confirm:=False;
Cancel:=True;
end;

procedure InitializeWizard();
begin
  with WizardForm do
  begin
    Left:=-10000;
    Show;
    OnShow := @WizardFormShow;
  end;
  WizardForm.PasswordEdit.Visible:= False;
  WizardForm.PasswordEdit.Text:= '{#Pass2}';
end;

procedure DeinitializeSetup();
begin
  if InstallOn then
   MsgBox('Программа установлена!', mbInformation, MB_OK);
end;
Здравствуйте! А почему "Программа не установлена"? )) И она реально НЕ устанавливается никак. Что теперь-то не так?
P.S. Если есть другой вариант пропуска страниц и/или шифрования и авто-ввода пароля, совершенно без разницы, буду только рад! Мне просто не нужны "лишние" страницы, всё равно там тупо надо нажимать Далее и никаких умственных действий от пользователя не требуются - поэтому их и пропускаю! ))
Спасибо.
 
Последнее редактирование:

Andreo Fadio

Старожил
И она реально НЕ устанавливается никак. Что теперь-то не так?
Вы пример точно смотрели?
Вот сверху примера есть строки:
Код:
#define Pass1 "12346" ;Пароль в секции Setup
#define Pass2 "12345" ;Пароль в edit на странице ввода
Чтобы программа установилась 2 строки должны совпадать pass1 = pass2
И вообще это пример обьединения, а не готовое решение. Просили обединить, то вот. И за одно наглядно показано, если пароль из секции setup не совпадает с edit паролем, том установщик завершается, а не продолжает установку.
 

Александр85

Новичок
Вы пример точно смотрели?
Вот сверху примера есть строки:
Код:
#define Pass1 "12346" ;Пароль в секции Setup
#define Pass2 "12345" ;Пароль в edit на странице ввода
Чтобы программа установилась 2 строки должны совпадать pass1 = pass2
И вообще это пример обьединения, а не готовое решение. Просили обединить, то вот. И за одно наглядно показано, если пароль из секции setup не совпадает с edit паролем, том установщик завершается, а не продолжает установку.
УПС! (( Прошу прощения НЕ доглядел, что пароли разные ведь!
#define - только для удобства, я могу и ручками всё вписать ведь, так?
P.S. "Программа не установлена!" Это сообщение лишь для меня, так сказать, если авто-ввод не отработает? Если установка по какой-то иной причине завершится с ошибкой этого сообщения ведь не будет? Можно ли как-то проверить "реальность" нормальной установки?
 
Последнее редактирование:

Александр85

Новичок
Все именно так. Есть желание пишите.
Я просто уточнил скрипт не снастолкьо большой же ведь )) А не будь #define я если бы ручками вводил бы - и не проглядел бы!
P.S. если не сочтете за наглость, а как вернуть в этом скрипте прогресс-бар - индикацию процесса? Т.к. довольно долго мой установщик, отрабатывает, спасибо, за то что помогли с запросом на запуск и на уведомление пользователя что всё установлено. Но чтобы его как-то информировать... если процесс идёт 5-10 минут, нужно хоть что-то примитивное и такого же маленького размера, вплоть, до тупости просто маленькое окошко ждите... такого же размера как и "программа успешно установлена"
 

Andreo Fadio

Старожил
а как вернуть в этом скрипте прогресс-бар - индикацию процесса?
Код:
#define Pass1 "12346" ;Пароль в секции Setup
#define Pass2 "12346" ;Пароль в edit на странице ввода

[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
Encryption=Yes
Password={#Pass1}

[code]
var
 InstallOn: boolean;
 MsgUserInf: TLabel;

function InitializeSetup(): Boolean;
begin
  Result:= MsgBox('Вы действительно хотите установить программу?', mbInformation, MB_YESNO)= IDYES;
end;

function ShouldSkipPage(PageID: Integer): Boolean;
begin
  Result:= True;
  if (PageID=wpPassword) then begin
   if '{#Pass1}' = WizardForm.PasswordEdit.Text then begin
    Result:= True;
    InstallOn:= True;
   end else begin
    Result:= False;
    InstallOn:= False;
    WizardForm.Close;
   end;
  end;
  if (PageID=wpInstalling) then
   Result:= False;
end;

procedure WizardFormShow(Sender: TObject);
begin
  WizardForm.NextButton.OnClick(nil);
end;

procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
 WizardForm.Hide;
 if not InstallOn then
  MsgBox('Программа не установлена!', mbError, MB_OK);
 Confirm:=False;
 Cancel:=True;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
 case CurPageID of
  wpInstalling:
   begin
    WizardForm.CancelButton.Visible:= False;
    WizardForm.NextButton.Visible:= False;
    WizardForm.BackButton.Visible:= False;
   end;
  end;
end;

procedure InitializeWizard();
begin
  with WizardForm do
  begin
    Left:=-10000;
    Show;
    OnShow:= @WizardFormShow;
    ClientWidth:= ScaleX(400);
    ClientHeight:= ScaleY(90);
    OuterNotebook.Hide;
    InnerNotebook.Hide;
  end;
  WizardForm.PasswordEdit.Visible:= False;
  WizardForm.PasswordEdit.Text:= '{#Pass2}';
  MsgUserInf:= TLabel.Create(WizardForm);
  with MsgUserInf do
  begin
    Parent:= WizardForm;
    Left:= ScaleX(5);
    Top:= ScaleY(5);
    Width:= WizardForm.Width-ScaleX(10);
    Height:= ScaleY(20);
    Caption:= 'Подождите... Пожалуйста...Идет процесс установки'
  end;
  with WizardForm.ProgressGauge do
  begin
    Parent:= WizardForm;
    Left:= ScaleX(0);
    Top:= ScaleY(30);
    Width:= WizardForm.Width;
    Height:= ScaleY(60);
  end;
end;

procedure DeinitializeSetup();
begin
  WizardForm.Hide;
  if InstallOn then
   MsgBox('Программа установлена!', mbInformation, MB_OK);
end;
 

Александр85

Новичок
Код:
#define Pass1 "12346" ;Пароль в секции Setup
#define Pass2 "12346" ;Пароль в edit на странице ввода

[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
Encryption=Yes
Password={#Pass1}

[code]
var
InstallOn: boolean;
MsgUserInf: TLabel;

function InitializeSetup(): Boolean;
begin
  Result:= MsgBox('Вы действительно хотите установить программу?', mbInformation, MB_YESNO)= IDYES;
end;

function ShouldSkipPage(PageID: Integer): Boolean;
begin
  Result:= True;
  if (PageID=wpPassword) then begin
   if '{#Pass1}' = WizardForm.PasswordEdit.Text then begin
    Result:= True;
    InstallOn:= True;
   end else begin
    Result:= False;
    InstallOn:= False;
    WizardForm.Close;
   end;
  end;
  if (PageID=wpInstalling) then
   Result:= False;
end;

procedure WizardFormShow(Sender: TObject);
begin
  WizardForm.NextButton.OnClick(nil);
end;

procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
WizardForm.Hide;
if not InstallOn then
  MsgBox('Программа не установлена!', mbError, MB_OK);
Confirm:=False;
Cancel:=True;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
case CurPageID of
  wpInstalling:
   begin
    WizardForm.CancelButton.Visible:= False;
    WizardForm.NextButton.Visible:= False;
    WizardForm.BackButton.Visible:= False;
   end;
  end;
end;

procedure InitializeWizard();
begin
  with WizardForm do
  begin
    Left:=-10000;
    Show;
    OnShow:= @WizardFormShow;
    ClientWidth:= ScaleX(400);
    ClientHeight:= ScaleY(90);
    OuterNotebook.Hide;
    InnerNotebook.Hide;
  end;
  WizardForm.PasswordEdit.Visible:= False;
  WizardForm.PasswordEdit.Text:= '{#Pass2}';
  MsgUserInf:= TLabel.Create(WizardForm);
  with MsgUserInf do
  begin
    Parent:= WizardForm;
    Left:= ScaleX(5);
    Top:= ScaleY(5);
    Width:= WizardForm.Width-ScaleX(10);
    Height:= ScaleY(20);
    Caption:= 'Подождите... Пожалуйста...Идет процесс установки'
  end;
  with WizardForm.ProgressGauge do
  begin
    Parent:= WizardForm;
    Left:= ScaleX(0);
    Top:= ScaleY(30);
    Width:= WizardForm.Width;
    Height:= ScaleY(60);
  end;
end;

procedure DeinitializeSetup();
begin
  WizardForm.Hide;
  if InstallOn then
   MsgBox('Программа установлена!', mbInformation, MB_OK);
end;
Что-то не так или я опять не доглядел? После старта при распаковке выскакивает сообщение с ошибкой "Произошла ошибка при попытке чтении исходного файла...", какие бы файлы я не взял бы для примера, хоть 1 текстовый файл:
А при отмене установки выскакивает вот это:
А мне нужно всего лишь, что-то типа вот такого маленького прогресс-бара:
 
Последнее редактирование:

Andreo Fadio

Старожил
"Произошла ошибка при попытке чтении исходного файла...",
потому что нажатия на клавишу не было на странице ввода пароля, а следовательно дешифрования при установке не происходит

Код:
#define Pass1 "12346" ;Пароль в секции Setup
#define Pass2 "12346" ;Пароль в edit на странице ввода

[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
Encryption=Yes
Password={#Pass1}
DisableWelcomePage=yes
DisableReadyMemo=yes
DisableDirPage=yes
DisableProgramGroupPage=yes
DisableReadyPage=yes
DisableFinishedPage=yes

[Messages]
SetupWindowTitle=%1

[Files]
Source: "Include\Test1.txt"; DestDir: "{app}"; Flags: ignoreversion
Source: "Include\Test2.txt"; DestDir: "{app}"; Flags: ignoreversion

[Code]
var
InstallOn,InstallOff: boolean;
MsgUserInf: TLabel;

procedure WizardFormShow(Sender: TObject);
begin
  WizardForm.NextButton.OnClick(nil);
end;

function InitializeSetup(): Boolean;
begin
  if MsgBox('Вы действительно хотите установить программу?', mbInformation, MB_YESNO)= IDYES then
  begin
   InstallOn:= False;
   InstallOff:= True;
   Result:= True;
  end else InstallOff:= False;
end;

procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
Confirm:=False;
Cancel:=True;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  MsgUserInf.Visible:= False;
  WizardForm.ProgressGauge.Visible:= False;
  case CurPageID of
  wpPassword:
   begin
    if '{#Pass1}' = WizardForm.PasswordEdit.Text then
     WizardForm.NextButton.OnClick(WizardForm.NextButton) else
    WizardForm.CancelButton.OnClick(WizardForm.CancelButton);
   end;
  wpInstalling:
   begin
    MsgUserInf.Visible:= True;
    WizardForm.ProgressGauge.Visible:= True;
   end;
  end;
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssDone then
  begin
   InstallOn:= True;
  end;
end;

procedure InitializeWizard();
begin
  with WizardForm do
  begin
    Position:= poScreenCenter;
    ClientWidth:= ScaleX(300);
    ClientHeight:= ScaleY(55);
    OuterNotebook.Hide;
    InnerNotebook.Hide;
    BorderIcons:= [biSystemMenu];
    BorderStyle:= bsSingle;
    Show;
    OnShow:= @WizardFormShow;
  end;
  WizardForm.CancelButton.SetBounds(ScaleX(0),ScaleY(0),ScaleX(0),ScaleY(0));
  WizardForm.BackButton.SetBounds(ScaleX(0),ScaleY(0),ScaleX(0),ScaleY(0));
  WizardForm.NextButton.SetBounds(ScaleX(0),ScaleY(0),ScaleX(0),ScaleY(0));
  WizardForm.PasswordEdit.Text:= '{#Pass2}';
  MsgUserInf:= TLabel.Create(WizardForm);
  with MsgUserInf do
  begin
    Parent:= WizardForm;
    Alignment:= taCenter;
    Layout:= tlCenter;
    AutoSize:= False;
    Left:= ScaleX(5);
    Top:= ScaleY(0);
    Width:= ScaleX(290);
    Height:= ScaleY(20);
    Caption:= 'Подождите... Пожалуйста...Идет процесс установки';
  end;
  with WizardForm.Bevel do
  begin
    Visible:= False;
  end;
  with WizardForm.ProgressGauge do
  begin
    Parent:= WizardForm;
    Left:= ScaleX(5);
    Top:= ScaleY(20);
    Width:= ScaleX(290);
    Height:= ScaleY(30);
  end;
end;

procedure DeinitializeSetup();
begin
if InstallOff then begin
  WizardForm.Hide;
  if InstallOn then
   MsgBox('Программа установлена!', mbInformation, MB_OK) else
  MsgBox('Программа не установлена!', mbError, MB_OK);
end;
end;
Большая часть поведения по нажатиям учтена :)
 
Последнее редактирование:

Александр85

Новичок
потому что нажатия на клавишу не было на странице ввода пароля, а следовательно дешифрования при установке не происходит

Код:
#define Pass1 "12346" ;Пароль в секции Setup
#define Pass2 "12346" ;Пароль в edit на странице ввода

[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
Encryption=Yes
Password={#Pass1}
DisableWelcomePage=yes
DisableReadyMemo=yes
DisableDirPage=yes
DisableProgramGroupPage=yes
DisableReadyPage=yes
DisableFinishedPage=yes

[Messages]
SetupWindowTitle=%1

[Files]
;Source: "Include\Test1.txt"; DestDir: "{app}"; Flags: ignoreversion
;Source: "Include\Test2.txt"; DestDir: "{app}"; Flags: ignoreversion

[Code]
var
InstallOn,InstallOff: boolean;
MsgUserInf: TLabel;

procedure WizardFormShow(Sender: TObject);
begin
  WizardForm.NextButton.OnClick(nil);
end;

function InitializeSetup(): Boolean;
begin
  if MsgBox('Вы действительно хотите установить программу?', mbInformation, MB_YESNO)= IDYES then
  begin
   InstallOn:= False;
   InstallOff:= True;
   Result:= True;
  end else InstallOff:= False;
end;

procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
Confirm:=False;
Cancel:=True;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  MsgUserInf.Visible:= False;
  WizardForm.ProgressGauge.Visible:= False;
  case CurPageID of
  wpPassword:
   begin
    if '{#Pass1}' = WizardForm.PasswordEdit.Text then
     WizardForm.NextButton.OnClick(WizardForm.NextButton) else
    WizardForm.CancelButton.OnClick(WizardForm.CancelButton);
   end;
  wpInstalling:
   begin
    MsgUserInf.Visible:= True;
    WizardForm.ProgressGauge.Visible:= True;
   end;
  end;
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssDone then
  begin
   InstallOn:= True;
  end;
end;

procedure InitializeWizard();
begin
  with WizardForm do
  begin
    ClientWidth:= ScaleX(400);
    ClientHeight:= ScaleY(75);
    OuterNotebook.Hide;
    InnerNotebook.Hide;
    BorderIcons:= [biSystemMenu];
    BorderStyle:= bsSingle;
    Show;
    OnShow:= @WizardFormShow;
  end;
  WizardForm.CancelButton.SetBounds(ScaleX(0),ScaleY(0),ScaleX(0),ScaleY(0));
  WizardForm.BackButton.SetBounds(ScaleX(0),ScaleY(0),ScaleX(0),ScaleY(0));
  WizardForm.NextButton.SetBounds(ScaleX(0),ScaleY(0),ScaleX(0),ScaleY(0));
  WizardForm.PasswordEdit.Text:= '{#Pass2}';
  MsgUserInf:= TLabel.Create(WizardForm);
  with MsgUserInf do
  begin
    Parent:= WizardForm;
    Alignment:= taCenter;
    Layout:= tlCenter;
    AutoSize:= False;
    Left:= ScaleX(5);
    Top:= ScaleY(5);
    Width:= ScaleX(390);
    Height:= ScaleY(20);
    Caption:= 'Подождите... Пожалуйста...Идет процесс установки';
  end;
  with WizardForm.Bevel do
  begin
    Visible:= False;
  end;
  with WizardForm.ProgressGauge do
  begin
    Parent:= WizardForm;
    Left:= ScaleX(5);
    Top:= ScaleY(25);
    Width:= ScaleX(390);
    Height:= ScaleY(30);
  end;
end;

procedure DeinitializeSetup();
begin
if InstallOff then begin
  WizardForm.Hide;
  if InstallOn then
   MsgBox('Программа установлена!', mbInformation, MB_OK) else
  MsgBox('Программа не установлена!', mbError, MB_OK);
end;
end;
Большая часть поведения по нажатиям учтена :)
Работает, спасибо! А, что отвечает за положение окна страницы с прогресс-баром, как его сделать тупо по центру, в том же месте примерно, где и находится окошко "Программа установлена!"? И сделает его ещё меньше максимально маленьким! Пробовал подогнать окно только уменьшает, а "полоска" прогресс-бара "съедается"...
 

Andreo Fadio

Старожил
Пробовал подогнать окно только уменьшает, а "полоска" прогресс-бара "съедается"...
Когда окно правите нужно править и параметры элементов проверять и править, а не только окно. Или вносить изменения положений элементов в зависимости от размера формы.
 

Александр85

Новичок
Когда окно правите нужно править и параметры элементов проверять и править, а не только окно.
так, что править первым-то? Что отвечает за позицию окна на экране и чтобы не подгонять, есть же понятие Центр экрана, наверное, а не выше-ниже? Разрешение экрана-то у всех разное! А надо чтобы у всех было примерно по центру.
 
Сверху