Войти

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


Страниц : 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

alert30
28-04-2012, 19:49
detiedyatosla

http://savepic.su/1778397m.png (http://savepic.su/1778397.htm)

detiedyatosla
28-04-2012, 19:51
alert30, спасибо я видел
у меня скрипт не работает а не проблемы со зрением

Devils Night
28-04-2012, 20:51
нужно растянуть инсталятор»спасибо я видел »Значит плохо видел. alert30, тебе дал (http://forum.oszone.net/post-1907449-1722.html) пищу для ума, и между прочим, тут были примеры как сделать, растянуть форму, перетащить кнопки и писалось не один раз, и если бы ты хоть чуть чуть напрягся, а не ленился, то ты бы сделал бы себе подобное этому:
[Setup]
AppName=My Program
AppVersion=1.5
;AppVerName=My Program 1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputDir=.
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes

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

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

[Icons]
Name: "{group}\{cm:UninstallProgram,My Program}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\{cm:UninstallProgram,My Program}"; Filename: "{uninstallexe}"; Tasks: desktopicon

[ Code]
procedure TasksListClick(Sender: TObject); forward;

procedure RedesignWizardForm;
begin
with WizardForm do
begin
AutoScroll := False;
ClientHeight := ScaleY(576);
ClientWidth := ScaleX(799);
end;

with WizardForm.Bevel do
begin
Top := ScaleY(535);
Width := ScaleX(799);
end;

with WizardForm.CancelButton do
begin
Left := ScaleX(708);
Top := ScaleY(543);
end;

with WizardForm.NextButton do
begin
Left := ScaleX(623);
Top := ScaleY(543);
end;

with WizardForm.BackButton do
begin
Left := ScaleX(543);
Top := ScaleY(543);
end;

with WizardForm.OuterNotebook do
begin
Width := ScaleX(799);
Height := ScaleY(535);
end;

with WizardForm.WizardBitmapImage do
begin
Width := ScaleX(798);
Height := ScaleY(538);
end;

with WizardForm.WelcomeLabel2 do
begin
Top := ScaleY(215);
Width := ScaleX(589);
Height := ScaleY(79);
end;

with WizardForm.WelcomeLabel1 do
begin
Top := ScaleY(160);
Width := ScaleX(589);
Height := ScaleY(31);
end;

with WizardForm.Bevel1 do
begin
Width := ScaleX(801);
end;

with WizardForm.InnerNotebook do
begin
Width := ScaleX(713);
Height := ScaleY(437);
end;

with WizardForm.LicenseNotAcceptedRadio do
begin
Left := ScaleX(8);
Top := ScaleY(416);
end;

with WizardForm.LicenseAcceptedRadio do
begin
Left := ScaleX(8);
Top := ScaleY(396);
end;

with WizardForm.LicenseMemo do
begin
Width := ScaleX(713);
Height := ScaleY(348);
end;

with WizardForm.PasswordEdit do
begin
Left := ScaleX(144);
Top := ScaleY(413);
Width := ScaleX(553);
end;

with WizardForm.PasswordEditLabel do
begin
Top := ScaleY(417);
Width := ScaleX(137);
end;

with WizardForm.InfoBeforeMemo do
begin
Top := ScaleY(16);
Width := ScaleX(713);
Height := ScaleY(421);
end;

with WizardForm.UserInfoSerialEdit do
begin
Left := ScaleX(16);
Top := ScaleY(232);
end;

with WizardForm.UserInfoSerialLabel do
begin
Left := ScaleX(16);
Top := ScaleY(216);
end;

with WizardForm.UserInfoOrgEdit do
begin
Left := ScaleX(16);
Top := ScaleY(180);
end;

with WizardForm.UserInfoOrgLabel do
begin
Left := ScaleX(16);
Top := ScaleY(164);
end;

with WizardForm.UserInfoNameEdit do
begin
Left := ScaleX(16);
Top := ScaleY(128);
end;

with WizardForm.UserInfoNameLabel do
begin
Left := ScaleX(16);
Top := ScaleY(112);
end;

with WizardForm.DiskSpaceLabel do
begin
Left := ScaleX(8);
Top := ScaleY(408);
end;

with WizardForm.DirBrowseButton do
begin
Left := ScaleX(630);
Top := ScaleY(378);
end;

with WizardForm.DirEdit do
begin
Left := ScaleX(8);
Top := ScaleY(380);
Width := ScaleX(620);
end;

with WizardForm.SelectDirBrowseLabel do
begin
Left := ScaleX(8);
Top := ScaleY(348);
Width := ScaleX(689);
end;

with WizardForm.ComponentsDiskSpaceLabel do
begin
Left := ScaleX(8);
Top := ScaleY(416);
end;

with WizardForm.ComponentsList do
begin
Width := ScaleX(713);
Height := ScaleY(352);
end;

with WizardForm.TypesCombo do
begin
Width := ScaleX(713);
end;

with WizardForm.NoIconsCheck do
begin
Left := ScaleX(8);
Top := ScaleY(407);
end;

with WizardForm.GroupBrowseButton do
begin
Left := ScaleX(630);
Top := ScaleY(378);
end;

with WizardForm.GroupEdit do
begin
Left := ScaleX(8);
Top := ScaleY(380);
Width := ScaleX(620);
end;

with WizardForm.SelectStartMenuFolderBrowseLabel do
begin
Left := ScaleX(8);
Top := ScaleY(348);
end;

with WizardForm.TasksList do
begin
Width := ScaleX(713);
Height := ScaleY(400);
OnClick := @TasksListClick;
end;

with WizardForm.ReadyMemo do
begin
Width := ScaleX(713);
Height := ScaleY(413);
end;

with WizardForm.FilenameLabel do
begin
Left := ScaleX(200);
Top := ScaleY(392);
Width := ScaleX(497);
end;

with WizardForm.StatusLabel do
begin
Left := ScaleX(8);
Top := ScaleY(392);
Width := ScaleX(169);
end;

with WizardForm.ProgressGauge do
begin
Left := ScaleX(8);
Top := ScaleY(410);
Width := ScaleX(697);
end;

with WizardForm.InfoAfterMemo do
begin
Width := ScaleX(713);
Height := ScaleY(413);
end;

with WizardForm.MainPanel do
begin
Width := ScaleX(801);
end;

with WizardForm.WizardSmallBitmapImage do
begin
Left := ScaleX(744);
Top := ScaleY(0);
end;

with WizardForm.PageDescriptionLabel do
begin
Width := ScaleX(701);
end;

with WizardForm.WizardBitmapImage2 do
begin
Width := ScaleX(798);
Height := ScaleY(538);
end;

with WizardForm.RunList do
begin
Top := ScaleY(414);
Width := ScaleX(613);
Height := ScaleY(60);
end;

with WizardForm.NoRadio do
begin
Top := ScaleY(444);
end;

with WizardForm.YesRadio do
begin
Top := ScaleY(422);
end;

with WizardForm.FinishedLabel do
begin
Left := ScaleX(168);
Top := ScaleY(319);
Width := ScaleX(621);
end;

with WizardForm.FinishedHeadingLabel do
begin
Left := ScaleX(168);
Top := ScaleY(272);
Width := ScaleX(621);
Height := ScaleY(39);
end;
end;

procedure TasksListClick(Sender: TObject);
begin

end;

procedure InitializeWizard();
begin
RedesignWizardForm;
end;

и в него вставить картинку на все страницы »
Вот пример из справки:

[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program


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

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

[Files]
Source: compiler:Examples\MyProg.exe; DestDir: {app}; Flags : ignoreversion

[Run]
FileName: {app}\MyProg.exe; Description: Запустить My Program?; Flags: postinstall nowait skipifsilent

[Icons]
Name: "{group}\{cm:UninstallProgram,My Program}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\{cm:UninstallProgram,My Program}"; Filename: "{uninstallexe}"; Tasks: desktopicon


[ Code]
var
pnl: TPanel;

///////////////////////WelcomePage//////////////////////////////////////
procedure WelcomePage;
begin
with TLabel.Create(pnl) do
begin
AutoSize:= WizardForm. WelcomeLabel1.AutoSize;
SetBounds(WizardForm.WelcomeLabel1.Left,WizardForm.WelcomeLabel1.Top,
WizardForm.WelcomeLabel1.Width,WizardForm.WelcomeLabel1.Height);
WordWrap:= WizardForm.WelcomeLabel1.WordWrap;
Caption:= WizardForm.WelcomeLabel1.Caption;
with Font do
begin
Color:= WizardForm.WelcomeLabel1.Font.Color;
Style:= WizardForm.WelcomeLabel1.Font.Style;
Name:= WizardForm.WelcomeLabel1.Font.Name;
Size:= WizardForm.WelcomeLabel1.Font.Size;
end;
Transparent:= True;
Parent:= pnl;
end;
with TLabel.Create(pnl) do
begin
AutoSize:= WizardForm.WelcomeLabel2.AutoSize;
SetBounds(WizardForm.WelcomeLabel2.Left,WizardForm.WelcomeLabel2.Top,
WizardForm.WelcomeLabel2.Width,WizardForm.WelcomeLabel2.Height);
WordWrap:= WizardForm.WelcomeLabel2.WordWrap;
Caption:= WizardForm.WelcomeLabel2.Caption;
with Font do
begin
Color:= WizardForm.WelcomeLabel2.Font.Color;
Style:= WizardForm.WelcomeLabel2.Font.Style;
Name:= WizardForm.WelcomeLabel2.Font.Name;
Size:= WizardForm.WelcomeLabel2.Font.Size;
end;
Transparent:= True;
Parent:= pnl;
end;
pnl.Repaint;
end;
/////////////////////////////////////////////////////////////////

///////////////////////SelectDirPage//////////////////////////////////////
procedure SelectDirPage;
begin
with WizardForm do
begin
with DirEdit do
begin
Left:= 40;
Top:= 137;
Parent:= pnl;
end;
with DirBrowseButton do
begin
Left:= WizardForm.DirEdit.Left + WizardForm.DirEdit.Width + 10;
Top:= WizardForm.DirEdit.Top - 1;
Parent:= pnl;
end;
with SelectDirBitmapImage do
begin
Left:= WizardForm.DirEdit.Left;
Top:= WizardForm.DirEdit.Top - 62;
Stretch:= True;
Parent:= pnl;
end;
end;
with TLabel.Create(pnl) do
begin
AutoSize:= WizardForm.SelectDirBrowseLabel.AutoSize;
SetBounds(WizardForm.DirEdit.Left,WizardForm.DirEdit.Top - 30,
WizardForm.SelectDirBrowseLabel.Width, WizardForm.SelectDirBrowseLabel.Height);
WordWrap:= WizardForm.SelectDirBrowseLabel.WordWrap;
Caption:= WizardForm.SelectDirBrowseLabel.Caption;
with Font do
begin
Color:= WizardForm.SelectDirBrowseLabel.Font.Color;
Style:= WizardForm.SelectDirBrowseLabel.Font.Style;
Name:= WizardForm. SelectDirBrowseLabel.Font.Name;
Size:= WizardForm.SelectDirBrowseLabel.Font.Size;
end;
Transparent:= True;
Parent:= pnl;
end;
with TLabel.Create(pnl) do
begin
AutoSize:= WizardForm.SelectDirLabel.AutoSize;
SetBounds(WizardForm.SelectDirBitmapImage.Left + 50,WizardForm.SelectDirBitmapImage.Top + 10,
WizardForm.SelectDirLabel.Width,WizardForm.SelectDirLabel.Height);
WordWrap:= WizardForm.SelectDirLabel.WordWrap;
Caption:= WizardForm.SelectDirLabel.Caption;
with Font do
begin
Color:= WizardForm.SelectDirLabel.Font.Color;
Style:= WizardForm.SelectDirLabel.Font.Style;
Name:= WizardForm.SelectDirLabel.Font.Name;
Size:= WizardForm.SelectDirLabel.Font.Size;
end;
Transparent:= True;
Parent:= pnl;
end;
with TLabel.Create(pnl) do
begin
AutoSize:= WizardForm.DiskSpaceLabel.AutoSize;
SetBounds(WizardForm.DirEdit.Left,WizardForm.Bevel.Top - 25,
WizardForm.DiskSpaceLabel.Width,WizardForm.DiskSpaceLabel.Height);
WordWrap:= WizardForm.DiskSpaceLabel.WordWrap;
Caption:= WizardForm.DiskSpaceLabel.Caption;
with Font do
begin
Color:= WizardForm.DiskSpaceLabel.Font.Color;
Style:= WizardForm.DiskSpaceLabel.Font.Style;
Name:= WizardForm.DiskSpaceLabel.Font.Name;
Size:= WizardForm.DiskSpaceLabel.Font.Size;
end;
Transparent:= True;
Parent:= pnl;
end;
pnl.Repaint;
end;
/////////////////////////////////////////////////////////////////

///////////////////////ReadyPage/////////////////////////////////
procedure ReadyPage;
var
ready_str: string;
begin
ready_str:= WizardForm.ReadyMemo.Text;
with TLabel.Create(pnl) do
begin
SetBounds(45,115,WizardForm.ReadyMemo.Width, WizardForm.ReadyMemo.Height);
Caption:= ready_str;
with Font do
begin
Color:= WizardForm.ReadyLabel.Font.Color;
Style:= WizardForm.ReadyLabel.Font.Style;
Name:= WizardForm.ReadyLabel.Font.Name;
Size:= WizardForm.ReadyLabel.Font.Size;
end;
Transparent:= True;
Parent:= pnl;
end;
with TBevel.Create(WizardForm) do
begin
SetBounds(40,110, WizardForm.ReadyMemo.Width, WizardForm.ReadyMemo.Height);
Parent:= pnl;
end;
with TLabel.Create(pnl) do
begin
AutoSize:= WizardForm.ReadyLabel.AutoSize;
SetBounds(40,70, WizardForm.ReadyLabel.Width, WizardForm.ReadyLabel.Height);
WordWrap:= WizardForm.ReadyLabel.WordWrap;
Caption:= WizardForm.ReadyLabel.Caption;
with Font do
begin
Color:= WizardForm.ReadyLabel.Font.Color;
Style:= WizardForm.ReadyLabel.Font.Style;
Name:= WizardForm.ReadyLabel.Font.Name;
Size:= WizardForm.ReadyLabel.Font.Size;
end;
Transparent:= True;
Parent:= pnl;
end;
pnl.Repaint;
end;
/////////////////////////////////////////////////////////////////

///////////////////////InstallingPage////////////////////////////
procedure InstallingPage;
begin
with WizardForm.ProgressGauge do
begin
Left:= 40;
Top:= 115;
Parent:= pnl;
end;
with TLabel.Create(pnl) do
begin
AutoSize:= WizardForm.FileNameLabel.AutoSize;
SetBounds(WizardForm.ProgressGauge.Left,WizardForm.ProgressGauge.Top-20,
WizardForm.FileNameLabel.Width,WizardForm.FileNameLabel.Height);
WordWrap:= WizardForm.FileNameLabel.WordWrap;
Caption:= WizardForm.FileNameLabel.Caption;
with Font do
begin
Color:= WizardForm.FileNameLabel.Font.Color;
Style:= WizardForm.FileNameLabel.Font.Style;
Name:= WizardForm.FileNameLabel.Font.Name;
Size:= WizardForm.FileNameLabel.Font.Size;
end;
Transparent:= True;
Parent:= pnl;
end;
with TLabel.Create(pnl) do
begin
AutoSize:= WizardForm.StatusLabel.AutoSize;
SetBounds(WizardForm.StatusLabel.Left,WizardForm.StatusLabel.Top,
WizardForm.StatusLabel.Width,WizardForm.StatusLabel.Height);
WordWrap:= WizardForm.StatusLabel.WordWrap;
Caption:= WizardForm.StatusLabel.Caption;
with Font do
begin
Color:= WizardForm.StatusLabel.Font.Color;
Style:= WizardForm.StatusLabel.Font.Style;
Name:= WizardForm.StatusLabel.Font.Name;
Size:= WizardForm.StatusLabel.Font.Size;
end;
Transparent:= True;
Parent:= pnl;
end;
pnl.Repaint;
end;
/////////////////////////////////////////////////////////////////

///////////////////////FinishedPage//////////////////////////////
var
CheckBox: array of TNewCheckBox;

procedure CheckBoxClick( Sender: TObject);
begin
if TNewCheckBox(Sender).Checked then
WizardForm.RunList.Checked[TNewCheckBox(Sender).Tag]:= True
else WizardForm.RunList.Checked[TNewCheckBox(Sender).Tag]:= False;
end;

procedure LabelClick(Sender:TObject);
begin
if CheckBox[TLabel(Sender).Tag].Checked then
begin
WizardForm.RunList.Checked[TLabel(Sender).Tag]:= False;
CheckBox[TLabel( Sender).Tag].Checked:= False;
end
else
begin
WizardForm.RunList.Checked[TLabel( Sender).Tag]:= True;
CheckBox[TLabel(Sender).Tag].Checked:= True;
end;
end;

procedure HideRunList(Control: TWinControl);
var
i, t: Integer;
str: string;
begin
if WizardForm.RunList.Items.Count > 0 then
begin
WizardForm.RunList.Hide;
SetArrayLength(CheckBox, SizeOf(WizardForm.RunList.Items.Count));
for i:= 0 to WizardForm.RunList.Items.Count-1 do
begin
CheckBox[i]:= TNewCheckBox.Create(Control);
with CheckBox[i] do
begin
SetBounds(ScaleX(WizardForm.RunList.Left+2),ScaleY(WizardForm.RunList.Top+2+t),14,14);
Tag:= i;
Checked:= WizardForm.RunList.Checked[i];
Caption:= WizardForm.RunList.Items.Strings[i];
OnClick:= @CheckBoxClick;
Color:= clWhite;
Parent:= Control;
end;
str:= WizardForm.RunList.Items.Strings[i];
with TLabel.Create(WizardForm) do
begin
SetBounds(ScaleX(WizardForm.RunList.Left+20),ScaleY(WizardForm.RunList.Top+2+t),
WizardForm.RunList.Width,14);
Caption:= str;
Tag:= i;
OnClick:= @LabelClick;
Transparent:= True;
Parent:= Control;
end;
t:= t + 20;
end;
end;
end;

procedure FinishedPage;
begin
HideRunList(pnl);
with TLabel.Create(pnl) do
begin
AutoSize:= WizardForm.FinishedHeadingLabel.AutoSize;
SetBounds(WizardForm.FinishedHeadingLabel.Left,WizardForm.FinishedHeadingLabel.Top,
WizardForm.FinishedHeadingLabel.Width,WizardForm.FinishedHeadingLabel.Height);
WordWrap:= WizardForm.FinishedHeadingLabel.WordWrap;
Caption:= WizardForm.FinishedHeadingLabel.Caption;
with Font do
begin
Color:= WizardForm.FinishedHeadingLabel.Font.Color;
Style:= WizardForm.FinishedHeadingLabel.Font.Style;
Name:= WizardForm.FinishedHeadingLabel.Font.Name;
Size:= WizardForm.FinishedHeadingLabel.Font.Size;
end;
Transparent:= True;
Parent:= pnl;
end;
with TLabel.Create(pnl) do
begin
AutoSize:= WizardForm.FinishedLabel.AutoSize;
SetBounds(WizardForm.FinishedLabel.Left,WizardForm.FinishedLabel.Top,
WizardForm.FinishedLabel.Width,WizardForm.FinishedLabel.Height);
WordWrap:= WizardForm.FinishedLabel.WordWrap;
Caption:= WizardForm.FinishedLabel.Caption;
with Font do
begin
Color:= WizardForm.FinishedLabel.Font.Color;
Style:= WizardForm.FinishedLabel.Font.Style;
Name:= WizardForm.FinishedLabel.Font.Name;
Size:= WizardForm.FinishedLabel.Font.Size;
end;
Transparent:= True;
Parent:= pnl;
end;
pnl.Repaint;
end;
/////////////////////////////////////////////////////////////////

procedure CurPageChanged(CurPageID: Integer);
begin
pnl:= TPanel.Create(WizardForm);
with pnl do
begin
Align:= alClient;
Parent:= WizardForm;
end;
with WizardForm do
begin
with WizardBitmapImage do
begin
Align:= alClient;
Stretch:= True;
Parent:= pnl;
end;
NextButton.Parent:= pnl;
CancelButton.Parent:= pnl;
BackButton.Parent:= pnl ;
Bevel.Parent:= pnl;
pnl.Repaint;
end;

if (CurPageID > wpWelcome) and (CurPageID < wpFinished) then
begin
WizardForm.Bevel1.Parent:= pnl;
with TLabel.Create(pnl) do
begin
AutoSize:= WizardForm.PageNameLabel.AutoSize;
SetBounds(WizardForm.PageNameLabel.Left,WizardForm.PageNameLabel.Top,
WizardForm.PageNameLabel.Width,WizardForm.PageNameLabel.Height);
Caption:= WizardForm.PageNameLabel.Caption;
with Font do
begin
Color:= WizardForm.PageNameLabel.Font.Color;
Style:= WizardForm.PageNameLabel.Font.Style;
Name:= WizardForm.PageNameLabel.Font.Name;
Size:= WizardForm.PageNameLabel.Font.Size;
end;
Transparent:= True;
Parent:= pnl;
end;
with TLabel.Create(pnl) do
begin
AutoSize:= WizardForm.PageNameLabel.AutoSize;
SetBounds(WizardForm.PageNameLabel.Left,WizardForm.PageNameLabel.Top,
WizardForm.PageNameLabel.Width,WizardForm.PageNameLabel.Height);
Caption:= WizardForm.PageNameLabel.Caption;
with Font do
begin
Color:= WizardForm.PageNameLabel.Font.Color;
Style:= WizardForm.PageNameLabel.Font.Style;
Name:= WizardForm.PageNameLabel.Font.Name;
Size:= WizardForm.PageNameLabel.Font.Size;
end;
Transparent:= True;
Parent:= pnl;
end;
pnl.Repaint;
end;

if CurPageID = wpWelcome then WelcomePage;
if CurPageID = wpSelectDir then SelectDirPage;
if CurPageID = wpReady then ReadyPage;
if CurPageID = wpInstalling then InstallingPage;
if CurPageID = wpFinished then FinishedPage;
end;


detiedyatosla, В то время Лександер уже давно любезно предоставил мануал (http://innoultra.ru/?p=378) по совмещению скриптов, т.е я думаю тебе этого бы хватило, чтоб хотя бы чуть чуть разобраться.

detiedyatosla
28-04-2012, 21:12
Devils Night,спс
какраз то что нужно

Johny777
28-04-2012, 23:22
о ты бы сделал бы себе подобное этому »
есть короче вариант по увеличению размера окна инсталятора и деинсталятора благодаря Лександру



[Setup]
AppName=Name
AppVerName=Name
DefaultDirName={pf}\Name

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

[ Code]
procedure InitializeWizard();
var
L: Integer;
begin
with WizardForm do begin
L:=ScaleX(100); // На сколько надо увеличить длину инсталла
ClientWidth := ClientWidth + L;
OuterNotebook.Width := ClientWidth;
InnerNotebook.Left := ClientWidth div 2 - InnerNotebook.Width div 2;
Bevel.Width:= ClientWidth;
Bevel1.Width:= ClientWidth;
MainPanel.Width:= ClientWidth;
with WelcomeLabel1 do
Left:= WelcomeLabel1.Left + L;
with WelcomeLabel2 do
Left:= WelcomeLabel2.Left + L;
with FinishedLabel do
Left:= FinishedLabel.Left + L;
with FinishedHeadingLabel do
Left:= FinishedHeadingLabel.Left + L;
with WizardSmallBitmapImage do
Left:= WizardSmallBitmapImage.Left + L;
end;
end;

procedure InitializeUninstallProgressForm;
var
L: Integer;
begin
with UninstallProgressForm do begin
L:=ScaleX(50); // На сколько надо увеличить длину инсталла
ClientWidth := ClientWidth + L;
OuterNotebook.Width := ClientWidth;
InnerNotebook.Left := ClientWidth div 2 - InnerNotebook.Width div 2;
Bevel.Width:= ClientWidth;
Bevel1.Width:= ClientWidth;
MainPanel.Width:= ClientWidth;
with WizardSmallBitmapImage do
Left:= WizardSmallBitmapImage.Left + L;
end;
end;

.

Lancher
29-04-2012, 11:25
Приветствую, существует рипаг Duke Nukem Forever (2011) [Action (Shooter) / 3D / 1st Person] Multi 2 / Rus {RePack от R.G.ReCoding​}. В нём есть переработанная страница компонентов. Наведя курсор на любой из компонентов, в правом окне, появляется описание этого компонента. Мне очень нужен такой скрипт установки или код. Заранее благодарен. »
Не очень понятно чего ты хочешь - можешь хотя бы скринов накидать?

Devils Night
29-04-2012, 13:16
Возможно ли сделать так, чтобы в соответствии с выбранным диском менялся и цвет папки, т.е если выбран системный диск, то красная, если логический то синяя?
Вот (http://rghost.ru/private/37823235/ccd35f071e117158f4a683da08cd2120) скрипт.

Johny777
29-04-2012, 14:50
если выбран системный диск, то красная, если логический то синяя »
вот
вроде работает,
пусть кто-нибудь проверит
*(только я не картинки взял, а панель создал. Её название и цвет меняются)


[Setup]
AppName=Drive Checked
AppVerName=Drive Checked
DefaultDirName={pf}\Drive Checked

[ Code]
var
Panel1: TPanel;

procedure DirEditOnChange(Sender: TObject);
var
Sys_Drive, Path: string;
begin
Sys_Drive := Copy('C:\', 0, 1);
Path := Copy(WizardForm.DirEdit.Text, 2, Length(WizardForm.DirEdit.Text));

if WizardForm.DirEdit.Text= Sys_Drive + Path
then
begin
Panel1.Color := $6088e0;
Panel1.Caption := 'Системный диск';
end
else
begin
Panel1.Color := $f1b53e;
Panel1.Caption := 'Логичекий диск';
end;
end;

procedure InitializeWizard;
begin
Panel1 := TPanel.Create(WizardForm);
with Panel1 do
begin
Name := 'Panel1';
Parent := WizardForm.SelectDirPage;
Left := ScaleX(128);
Top := ScaleY(120);
Width := ScaleX(145);
Height := ScaleY(25);
Font.Color := clWhite;
BevelOuter := bvLowered;
Caption := 'Сиситемный диск';
Color := $6088e0;
ParentBackground := False;
end;

WizardForm.DirEdit.OnChange := @DirEditOnChange;
end;


напомню касательно цвета http://forum.oszone.net/showpost.php?p=1885463

detiedyatosla
29-04-2012, 17:58
здраствуйте
скиньте плз как убрать разделитель

Devils Night
29-04-2012, 18:01
скиньте плз как убрать разделитель »Тебе какой, верхний или нижний?
Вот чтоб не гадать, скрыл оба:
[Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program

[ Code]
procedure RedesignWizardForm;
begin
with WizardForm.Bevel do
begin
Visible := False;
end;

with WizardForm.Bevel1 do
begin
Visible := False;
end;
end;

procedure InitializeWizard();
begin
RedesignWizardForm;
end;

А вообще, можно всё сделать в Редакторе форм, в сборке (http://innoultra.ru/?p=1) от Лександер (http://www.forum.oszone.ru/member.php?userid=128725) есть!

Johny777
29-04-2012, 21:11
Скажите пожалуйста как переделать
IsStringCyrillic.iss»

function IsStringCyrillic(Str: String): Boolean;
var
objRegExp: Variant;
begin
try
objRegExp := CreateOleObject('VBScript.RegExp');
except
ShowExceptionMessage;
end;

if objRegExp.Test(Str) then
begin
objRegExp.Pattern := '[\u0400-\u04FF,\u0500-\u052F,\u2DE0-\u2DFF,\uA640-\uA69F]';
Result := objRegExp.Execute(Str).Count = 1;
end;
end;
под

[code]
procedure DirEditOnChange(Sender: TObject);
begin
WizardForm.NextButton.Enabled := TEdit(Sender).Text <> '123';
end;

procedure InitializeWizard();
begin
WizardForm.DirEdit.OnChange := @DirEditOnChange;
end;

другие 2 "запрета на русские символы в пути"
1. http://forum.ru-board.com/topic.cgi?forum=5&topic=35848&start=1484&limit=1&m=2
2. http://forum.oszone.net/post-1891353-1362.html
через WizardForm.DirEdit.OnChange переделать под блокировку кнопки "далее" не получается :( (включая эту функцию)
Тяму не хватает!
Цель - заблокированная кнопка "Далее" и лейбл с надписью "Кириллица в пути не допустима. Это может привести к ошибкам запуска игры и неправильному отображению элементов интерфейса"
Думаю лейбл и блокировку кнопки я смогу сам потом добавить, а вот функцию...

valyok666
29-04-2012, 23:03
detiedyatosla, я же отвечал на этот вопрос)))
можно короче)

procedure InitializeWizard();
begin
with WizardForm do begin
Bevel.Hide;
Bevel1.Hide;
end;
end;

alert30
30-04-2012, 06:33
Есть скрипт, в котором в начальном старте процессе установки, сделать окно по-компактнее (сделать мини)?

El Sanchez
30-04-2012, 10:50
Тяму не хватает!
Цель - заблокированная кнопка "Далее" и лейбл с надписью "Кириллица в пути не допустима. Это может привести к ошибкам запуска игры и неправильному отображению элементов интерфейса" »
Johny777, дык, смотри на прототип IsStringCyrillic. На входе строка, на выходе булево значение, другими словами если во входной строке будет хоть один кириллический символ, то функция вернет True. WizardForm.NextButton.Enabled тоже возвращает булев результат, т.е. сделаем, чтобы это свойство зависело от результата IsStringCyrillic.

procedure DirEditOnChange(Sender: TObject);
begin
//как только IsStringCyrillic вернет False, т.е. кириллицей и не пахнет, то...
WizardForm.NextButton.Enabled := not IsStringCyrillic(TEdit(Sender).Text);
//с надписью "Кириллица в пути не бла-бла-бла" то же самое, только зависимость от Visible
MyLabel.Visible := IsStringCyrillic(TEdit(Sender).Text); //либо, чтобы IsStringCyrillic не гонять по второму разу MyLabel.Visible := not WizardForm.NextButton.Enabled, т.е. показать надпись, если кнопка неактивна, а это будет происходить, когда найдена кириллица.
end;

Johny777
30-04-2012, 12:05
то функция вернет True »
Спасибо! :)
а ведь просто оказывается *(тк я понял)
MyLabel.Visible := IsStringCyrillic(TEdit(Sender).Text);
это в итоге MyLabel.Visible := true;
с кнопкой тоже самое, только enabled
У меня же таким макаром работет список компонентов на странице выбора компонентов
http://img580.imageshack.us/img580/7596/69339739.png (http://imageshack.us/photo/my-images/580/69339739.png/)
только ещё плюс .Checked:=true/false

alert30,
ты имеешь ввиду страницу установки (wpInstalling) ?
через процедуру CurPageChanged можно все окна сделать разными с
различным расположение кнопок, размерами и действиями на них!
Вот здесь под 43 номером 2 варианта http://innoultra.ru/?page_id=18

alert30
30-04-2012, 12:10
Johny777, как же я сам не догадался, что у сайта Лександер'а полно FAQ-ов. :)

Gnom_aka_Lexander
30-04-2012, 20:18
alert30, Тут в шапке их тоже полно. Я все брал отсюда и с борды. Все, что нужно - это как следует полазить по темам и архиву - все найдешь. На данный момент, по моему, уже нет ни одного вопроса, который уже не решен.

Johny777
02-05-2012, 15:11
Извините, что не по теме спрашиваю!
Посоветуйте пожалуйста
насколько важен халфе 2 и эпизодам в купе с порталом (пираткам) бэкап достижений и сохранений?
( подозреваю не все знают, что статус достижений пишется в файл stats.bin в папке /bin где движок лежит. Сохранения соответственно находятся в папке SAVE )

R.i.m.s.k.y.
02-05-2012, 15:17
Johny777, я тебе из своего опыта скажу: вот сделал я дистр проги нужной сугубо мне и раздал всем по сети для собственного удобства, никто и не заметил, кроме одного прошаренного человека который пришел с разборками "кто стер мои настройки в проге без бекапа?"
Так что если ты думаешь что никто не пользуется достижениями в пиратке ХЛ2, ты ошибаешься
Делай бекап!

А стирать не надо, это общий вопрос и ответ на него один: "не умничай и делай!" :)

Temyraz@fb
02-05-2012, 15:43
всем привет. вот процесс удаления сделал

#define MyAppName "Uninstall"


[Setup]
AppId=proto15
SourceDir=.
OutputDir=Setup
AppName={#MyAppName}
AppVerName={#MyAppName}
AppVersion={#MyAppName}
CreateAppDir=false
OutputBaseFilename={#MyAppName}
Uninstallable=false

ShowLanguageDialog=auto
LanguageDetectionMethod=uilanguage




[Languages]
Name: ru; MessagesFile: i18n\Russian.isl,i18n\sc_russian.isl
Name: ua; MessagesFile: i18n\Ukrainian-6-5.1.11.isl,i18n\sc_ukrainian.isl



[Files]
Source: {src}\files\*; DestDir: {code:SrcDir}\files\; Flags: ignoreversion recursesubdirs createallsubdirs external; Check: make_copy
Source: {src}\license\*; DestDir: {code:SrcDir}\license\; Flags: ignoreversion recursesubdirs createallsubdirs external; Check: make_copy
Source: dontcopy\check.bat; Flags: dontcopy
Source: dontcopy\checkdb.bat; Flags: dontcopy

[ Code]


////////////////////////////////////////////////////////////////////////
var
AutoRun: TForm;
ExitButton, UninstallButton: TButton;
ResultCode: Integer;
ISCustomPage1: TWizardPage;
SuperBackupCheckBox: TNewCheckBox;
Edit_1: TNewEdit;
WhereButton: TNewButton;
PasswordPage: TNewEdit;
UserVarPass: String;
filecontent: String;
ReturnCode: Integer;
//////////////////////////////////////////////////


procedure make_copy_again(Sender: TObject); forward;
procedure ButtonOnClick(Sender: TObject); forward;
/////////////////////////////////////////////////////////////////////
function PUTT(filepath:string):string;
var
S: TArrayOfString;
i : Integer;
begin
if not FileExists(FilePath) then begin MsgBox('Ôàéë íå íàéäåí ' + FilePath, mbError, mb_Ok); Exit;end; // åñëè ôàéëà íåò, âûõîäèì
LoadStringsFromFile(FilePath, S); // çàãðóæàåì ôàéë
result := S[0];
end;

procedure Unstall(Sender: TObject);

begin
begin
UserVarPass := PasswordPage.Text;
ExtractTemporaryFile('check.bat');
Exec (ExpandConstant ('{tmp}\check.bat'), PasswordPage.Text + ' "' + PUTT(ExpandConstant('{src}\text.txt')) + '"', ExpandConstant ( '{tmp}' ), SW_HIDE, ewWaitUntilTerminated, ReturnCode );
if ReturnCode = 0 then
begin





begin

begin
if SuperBackupCheckBox.Checked = true then
begin

MsgBox(ExpandConstant('ntcn'), mbError, MB_OK);

end
end;


begin
MsgBox(ExpandConstant('qqq'), mbError, MB_OK);



end
end
end
else
begin
MsgBox(ExpandConstant('{cm:msgIncorrectPassword}'), mbError, MB_OK);

exit;
end;
DeleteFile ( ExpandConstant ('{tmp}\check.bat') );
end;


AutoRun.Close;
end;


function make_copy: Boolean;
begin
Result:=SuperBackupCheckBox.Checked;
end;




procedure make_copy_again (Sender: TObject);
begin
if SuperBackupCheckBox.Checked = false then
begin
Edit_1.Enabled:= false;
Edit_1.visible:= false;
WhereButton.Enabled:= false;
WhereButton.visible:= false;
end
else
begin
Edit_1.Enabled:= true;
Edit_1.visible:= true;
WhereButton.Enabled:= true;
WhereButton.visible:= true;
end;
end;

var
DataDir: String;

function SrcDir(Param: String): String;
begin
Result := DataDir;
end;

procedure ButtonOnClick(Sender: TObject);
var
res: Boolean;
begin
DataDir := ExpandConstant('{src}');
res := BrowseForFolder('{cm:ButtonBrowse}', DataDir, True);
if res then
begin
Edit_1.Text := DataDir;
end;

end;

procedure CreateAutoRun();
begin
//AutoRun
AutoRun := TForm.Create(nil);
with AutoRun do
begin
BorderIcons := [];
Position := poScreenCenter;
Caption := ExpandConstant('Uninstall');
ClientWidth := ScaleX(250);
ClientHeight := ScaleY(250);

end;
begin

begin
PasswordPage := TNewEdit.Create(AutoRun);
with PasswordPage do
begin
Name := 'PasswordPage';
Parent := AutoRun;

Left := ScaleX(16);
Top := ScaleY(24);
Width := ScaleX(200);
Height := ScaleY(17);

end;
begin
SuperBackupCheckBox := TNewCheckBox.Create(AutoRun);
with SuperBackupCheckBox do
begin
Name := 'SuperBackupCheckBox';
Parent := AutoRun;
Left := ScaleX(16);
Top := ScaleY(54);
Width := ScaleX(169);
Height := ScaleY(17);
Hint := 'Ñîçäàòü áåêàï';
Caption := 'Ñîçäàòü áåêàï';
ShowHint := True;
OnClick := @make_copy_again;
end;

{ Edit_1 }
Edit_1 := TNewEdit.Create(AutoRun);
with Edit_1 do
begin
Name := 'Edit_1';
Parent := AutoRun;
Left := ScaleX(16);
Top := ScaleY(76);
Width := ScaleX(200);
Height := ScaleY(21);

Text := 'C:\';
end;

{ WhereButton }
WhereButton := TNewButton.Create(AutoRun);
with WhereButton do
begin
Name := 'WhereButton';
Parent := AutoRun;
Left := ScaleX(168);
Top := ScaleY(110);
Width := ScaleX(75);
Height := ScaleY(25);
Caption := '{cm:ButtonBrowse}';
OnClick := @ButtonOnClick;
end;

SuperBackupCheckBox.TabOrder := 0;
Edit_1.TabOrder := 1;
WhereButton.TabOrder := 2;

{ ReservationBegin }


{ ReservationEnd }

end;
Edit_1.visible:=false;
WhereButton.visible:=false;


AutoRun.Repaint;

UninstallButton := TButton.Create(AutoRun);
with UninstallButton do
begin
Parent := AutoRun;
Left := ScaleX(50);
Top := ScaleY(190);
Width := ScaleX(70);
Height := ScaleY(40);
Cursor := crHand;
Caption := ExpandConstant('Uninstall');
OnClick := @Unstall;
end;

ExitButton := TButton.Create(AutoRun);
with ExitButton do
begin
Parent := AutoRun;
Left := ScaleX(150);
Top := ScaleY(190);
Width := ScaleX(70);
Height := ScaleY(40);
Caption := ExpandConstant('Exit');
Cursor := crHand;
ModalResult := mrCancel;
end;
end;

AutoRun.ShowModal;
end;
end;

function InitializeSetup(): Boolean;

begin
CreateAutoRun();
Result := False;

end;


как сделать чтоб в начале был выбор языка? а так же в авторане брались значения перемен(текст.название) из файлов?




© OSzone.net 2001-2012