PDA

Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 8]


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 [70] 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126

Gamattinol
25-02-2016, 13:18
Как это исправить ?

Dodakaedr
25-02-2016, 13:39
Как это исправить ? »
Откуда я знаю что вы там написали, скриншот то даже не с моего примера.

Gamattinol
25-02-2016, 13:45
Откуда я знаю что вы там написали, скриншот то даже не с моего примера. »

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "My Program"
#define MyAppVersion "1.5"
#define MyAppPublisher "My Company, Inc."
#define MyAppURL "http://www.example.com/"
#define MyAppExeName "MyProg.exe"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{11852012-EB17-4CF3-A873-BB154995AD34}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DisableProgramGroupPage=yes
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "C:\Program Files (x86)\Inno Setup 5\Examples\MyProg.exe"; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{commonprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon

[Code]
var
NewGroupBox: TNewGroupBox;

procedure InitializeWizard();
begin
NewGroupBox := TNewGroupBox.Create(WizardForm);
with NewGroupBox do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(100);
Width := ScaleX(417);
Height := ScaleY(60);
Caption := 'Папка установки:';
end;

NewGroupBox.TabOrder := 5;

with WizardForm.DirBrowseButton do
begin
Left := ScaleX(334);
Top := ScaleY(23);
Parent := NewGroupBox;
end;

with WizardForm.DirEdit do
begin
Left := ScaleX(8);
Top := ScaleY(24);
Width := ScaleX(320);
Parent := NewGroupBox;
end;
end;



Как исправить ?
В коде ничего не трогал !

Скриншот - это мой,показываю что ничего не происходит от вашего кода!

Dodakaedr
25-02-2016, 13:49
Как исправить ?
В коде ничего не трогал ! »
добавьте procedure InitializeWizard();
begin
RedesignWizardForm;
end;

saurn
25-02-2016, 15:06
Как исправить ?»
Там нечего исправлять, пример рабочий. Вероятно, Вы где-то допустили ошибку.
[code]
const
STR_TBOX = #32'Папка установки:'#32;


procedure _CtrlsEdit();
var
_tBox: TNewGroupBox;
begin
with WizardForm do
begin
_tBox := TNewGroupBox.Create( nil );
with _tBox do
begin
Parent := SelectDirPage;
SetBounds( ScaleX( 0 ), ScaleY( 100 ), ScaleX( 417 ), ScaleY( 60 ) );
Caption := STR_TBOX;
end;

with DirBrowseButton do
begin
Left := ScaleX( 334 );
Top := ScaleY( 23 );
Parent := _tBox;
end;

with DirEdit do
begin
Left := ScaleX( 8 );
Top := ScaleY( 24 );
Width := ScaleX( 320 );
Parent := _tBox;
end;
end;
end;


procedure InitializeWizard();
begin
_CtrlsEdit();
end;

Gamattinol
25-02-2016, 15:17
http://pixs.ru/showimage/Snimokekra_8039494_20838132.png

Как подогнать чтобы было как на картинке ?
Больше не получается подогнать компонент и "caption" не знаю как там сделать !

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "My Program"
#define MyAppVersion "1.5"
#define MyAppPublisher "My Company, Inc."
#define MyAppURL "http://www.example.com/"
#define MyAppExeName "MyProg.exe"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{11852012-EB17-4CF3-A873-BB154995AD34}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DisableProgramGroupPage=yes
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "C:\Program Files (x86)\Inno Setup 5\Examples\MyProg.exe"; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{commonprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon

[Code]
var
Bevel2: TBevel;

procedure RedesignWizardForm;
begin
{ Bevel2 }
Bevel2 := TBevel.Create(WizardForm);
with Bevel2 do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(135);
Width := ScaleX(418);
Height := ScaleY(50);
Shape := bsFrame;
end;

with WizardForm.DirBrowseButton do
begin
Top := ScaleY(150);
Width := ScaleX(65);
end;

with WizardForm.DirEdit do
begin
Left := ScaleX(15);
Top := ScaleY(150);
Width := ScaleX(315);
end;
end;

procedure InitializeWizard();
begin
RedesignWizardForm;
end;

saurn
25-02-2016, 17:41
Как подогнать »
Выставляйте нужные значения:
Left := ScaleX( положение контрола от левой границы );
Top := ScaleY( положение контрола от верхней границы );
Width := ScaleX( ширина контрола );
Height := ScaleY( высота контрола );

Тоже самое, только одной строкой:
SetBounds( ScaleX( от левой границы ), ScaleY( от верхней границы ), ScaleX( ширина ), ScaleY( высота ) );

"caption" не знаю как там сделать »
[code]
const
STR_TXT = #32'Папка установки:'#32;


procedure _CtrlsEdit();
begin
with WizardForm do
begin
with TBevel.Create( nil ) do
begin
Parent := SelectDirPage;
SetBounds( ScaleX( 0 ), ScaleY( 115 ), ScaleX( 418 ), ScaleY( 50 ) );
Shape := bsFrame;
end;

with TNewStaticText.Create( nil ) do
begin
Parent := SelectDirPage;
Left := ScaleX( 8 );
Top := ScaleY( 108 );
AutoSize := True;
Caption := STR_TXT;
end;

with DirBrowseButton do
begin
Top := ScaleY( 130 );
Width := ScaleX( 65 );
end;

with DirEdit do
begin
Left := ScaleX( 15 );
Top := ScaleY( 130 );
Width := ScaleX( 315 );
end;
end;
end;


procedure InitializeWizard();
begin
_CtrlsEdit();
end;

Gamattinol
25-02-2016, 18:40
[code]
const
STR_TXT = #32'Папка установки:'#32;
procedure _CtrlsEdit();
begin
with WizardForm do
begin
with TBevel.Create( nil ) do
begin
Parent := SelectDirPage;
SetBounds( ScaleX( 0 ), ScaleY( 115 ), ScaleX( 418 ), ScaleY( 50 ) );
Shape := bsFrame;
end;
with TNewStaticText.Create( nil ) do
begin
Parent := SelectDirPage;
Left := ScaleX( 8 );
Top := ScaleY( 108 );
AutoSize := True;
Caption := STR_TXT;
end;
with DirBrowseButton do
begin
Top := ScaleY( 130 );
Width := ScaleX( 65 );
end;
with DirEdit do
begin
Left := ScaleX( 15 );
Top := ScaleY( 130 );
Width := ScaleX( 315 );
end;
end;
end;
procedure InitializeWizard();
begin
_CtrlsEdit();
end;
Полезное сообщение | Отправлено: 17:41, Сегодня | #1387 »




[Code]
const
STR_TXT = #32'Destination Folder'#32;


procedure _CtrlsEdit();
begin
with WizardForm do
begin
with TBevel.Create( nil ) do
begin
Parent := SelectDirPage;
SetBounds( ScaleX( 0 ), ScaleY( 125 ), ScaleX( 418 ), ScaleY( 50 ) );
Shape := bsFrame;
end;

with TNewStaticText.Create( nil ) do
begin
Parent := SelectDirPage;
Left := ScaleX( 13 );
Top := ScaleY( 118 );
AutoSize := True;
Caption := STR_TXT;
end;

with DirBrowseButton do
begin
Top := ScaleY( 137 );
Width := ScaleX( 85 );
end;

with DirEdit do
begin
Left := ScaleX( 15 );
Top := ScaleY( 139 );
Width := ScaleX( 315 );
end;
end;
end;


procedure InitializeWizard();
begin
_CtrlsEdit();
end;



Как убрать этот баг ?
http://pixs.ru/showimage/Snimokekra_1386538_20840618.png

Не знаю как эту рамку можно сделать шире

saurn
25-02-2016, 18:48
Как убрать этот баг ? »
Это не баг, просто вы увеличили размер кнопки.
В моем примере:
Width := ScaleX( 65 );

В Вашем:
Width := ScaleX( 85 );

Gamattinol
25-02-2016, 18:51
Это не баг, просто вы увеличили размер кнопки.
В моем примере: »

Все правильно я сделал больше кнопку!
Если сделать меньше будут кнопки по размеру отличаться,портится визуальный стиль!

saurn
25-02-2016, 19:01
Все правильно я сделал больше кнопку! »
Я так и сказал. Раз Вы увеличили кнопку, следовало учитывать, что размеры других контролов придется так же изменять: уменьшить размер DirEdit по ширине, сдвинуть кнопку влево, в частности.

Gamattinol
25-02-2016, 19:03
[Code]
const
STR_TXT = #32'Destination Folder'#32;


procedure _CtrlsEdit();
begin
with WizardForm do
begin
with TBevel.Create( nil ) do
begin
Parent := SelectDirPage;
SetBounds( ScaleX( 0 ), ScaleY( 125 ), ScaleX( 418 ), ScaleY( 50 ) );
Shape := bsFrame;
end;

with TNewStaticText.Create( nil ) do
begin
Parent := SelectDirPage;
Left := ScaleX( 13 );
Top := ScaleY( 118 );
AutoSize := True;
Caption := STR_TXT;
end;

with DirBrowseButton do
begin
Left := ScaleX( 315 );
Top := ScaleY( 137 );
Width := ScaleX( 85 );
end;

with DirEdit do
begin
Left := ScaleX( 15 );
Top := ScaleY( 139 );
Width := ScaleX( 290 );
end;
end;
end;


procedure InitializeWizard();
begin
_CtrlsEdit();
end;

Пока что только так получилось

Gamattinol
25-02-2016, 19:43
http://s014.radikal.ru/i329/1602/38/1b26df7a0245.png

SelectDirBrowseLabel
SelectDirLabel

Как переместить в нужное место эти компоненты (label) ?

Nordek
25-02-2016, 20:56
Не знаю как эту рамку можно сделать шире »InnerNotebook:
with WizardForm.InnerNotebook do
begin
Left := ScaleX(0);
Width := ScaleX(499);
end;

ZVSRus
25-02-2016, 21:01
Как переместить в нужное место эти компоненты (label) ?



procedure _CtrlsEdit();
begin
with WizardForm do
begin
with TBevel.Create( nil ) do
begin
Parent := SelectDirPage;
SetBounds( ScaleX( 0 ), ScaleY( 125 ), ScaleX( 418 ), ScaleY( 50 ) );
Shape := bsFrame;
end;

with TNewStaticText.Create( nil ) do
begin
Parent := SelectDirPage;
Left := ScaleX( 13 );
Top := ScaleY( 118 );
AutoSize := True;
Caption := STR_TXT;
end;

with DirBrowseButton do
begin
Left := ScaleX( 315 );
Top := ScaleY( 137 );
Width := ScaleX( 85 );
end;

with DirEdit do
begin
Left := ScaleX( 15 );
Top := ScaleY( 139 );
Width := ScaleX( 290 );
end;

with SelectDirBrowseLabel do
begin
Left := ScaleX(0);
Top := ScaleY(74);
Width := ScaleX(417);
Height := ScaleY(27);
end;

with SelectDirLabel do
begin
Left := ScaleX(44);
Top := ScaleY(39);
Width := ScaleX(373);
Height := ScaleY(14);
end;
end;
end;

vadjliss
28-02-2016, 16:09
парни , а как можно сделать что бы перед инсталляцией выскакивала рамка с предупреждением

saurn
28-02-2016, 17:40
как можно сделать что бы перед инсталляцией выскакивала рамка с предупреждением »
#define MyAppName "My Program"
#define MyAppVersion "1.5"


[Setup]
AppName={#MyAppName}
AppVersion={#MyAppVersion}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
OutputBaseFilename=setup


[Code]
function NextButtonClick( CurPageID: Integer ): Boolean;
begin
case CurPageID of
wpReady: Result := ( mrYes = MsgBox( 'Продолжить?', mbConfirmation, MB_YESNO ) );
else Result := True;
end;
end;

Irenis
29-02-2016, 22:30
Всем здравствуйте :) Подскажите пожалуйста, в чем может быть проблема. В установщиках, созданных через inno setup, не всегда появляется окно, где можно задавать путь установки, это окно пропускается и программа устанавливается принудительно, хотя я не задаю никаких параметров принудительной установки. Например, создала установщик, установила созданную программу, удалила ее, и при повторной установке уже нет окна, где можно выбрать путь установки. То есть каким то образом запоминается, куда я до этого устанавливала программу, и второй раз не появляется возможность выбора. Проблема еще в том, что часто создаю программы, которые бывают похожи по содержанию (например, одинаковые папки, похожие файлы .exe), так вот эти программы тоже начинают принудительно устанавливаться в одну папку. Подскажите пожалуйста, что можно сделать, чтобы не происходило таких принудительных установок и всегда можно было выбрать путь установки? Спасибо, очень надеюсь на ответ :help:

saurn
29-02-2016, 23:04
Irenis, значение директивы DisableDirPage в секции Setup, часом не auto?

Irenis
29-02-2016, 23:35
Честно говоря, у меня такой директивы вообще нету :dont-know
Установщики самые простейшие, созданные через мастера создания установщика, который автоматически создает какой то скрипт, дальше уже сама просто вношу мелкие дополнения в скрипт.




© OSzone.net 2001-2012