Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 7]
audiofeel
15-05-2014, 19:08
привет всем !!
не отображается StatusPanel.png и StatusPanel2.png
подскажите что и где не так
#include "iss\b2p.iss"
#include "iss\STS_module.iss"
[Setup]
AppName=MyApp
AppVerName=MyApp
DefaultDirName={pf}\MyApp
[Files]
Source: Dll\*; Flags: dontcopy
Source: Files\*; Flags: dontcopy;
[_code]
var
MyFont: TFont;
Form: LongInt;
procedure CreateForm;
begin
Form := ImgLoad(WizardForm.Handle, ExpandConstant('{tmp}\Form.png'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, False, True);
end;
procedure InitializeWizard();
begin
ExtractTemporaryFile('botva2.dll')
ExtractTemporaryFile('b2p.dll')
ExtractTemporaryFile('CallbackCtrl.dll')
ExtractTemporaryFile('StatusPanel.png');
ExtractTemporaryFile('StatusPanel2.png');
WizardForm.Width:= 790;
WizardForm.InnerNotebook.Hide;
WizardForm.OuterNotebook.Hide;
MyFont:= TFont.Create
MyFont.Size:=8;
// | отключаем функцию сортировки страниц
STS_Init(ExpandConstant('{tmp}\StatusPanel.png'), ExpandConstant('{tmp}\StatusPanel.png'), 0, 20, WizardForm.Width, 20, MyFont, False)
//Если вы отключили функцию сортировки страниц, то должны добавлять страницы
//которые будут использоваться в панели, строго по порядку их показывания
//Иначе панель будет неправильно отображать текущий статус
//Pagename PageID
STS_AddStage(CustomMessage('STSWelcomePage'), wpWelcome); //добавляет строку с названием страницы в панель
STS_AddStage(CustomMessage('STSDirEditPage'), wpSelectDir);
STS_AddStage(CustomMessage('STSReadyPage'), wpReady);
STS_AddStage(CustomMessage('STSInstallingPage'), wpInstalling);
STS_AddStage(CustomMessage('STSFinishedPage'), wpFinished);
STS_SetColor(clGray, clWhite)
STS_CreatePanel();
CreateForm;
ImgApplyChanges(WizardForm.Handle);
end;
procedure CurPageChanged(CurPageID: Integer);
begin
STS_UpdateStages(CurPageID)
end;
procedure DeinitializeSetup();
begin
gdipShutdown
end;
audiofeel, Юзай.http://rghost.ru/55188772
audiofeel
15-05-2014, 20:17
Shift85,
:cool:
этот пример я и взял, только там "старая" ботва" а как быть с "новой", то есть b2p.dll и тд
вот = http://file.sampo.ru/w8nrsk/
а как быть с "новой", то есть b2p.dll »
audiofeel, Бес понятия. Придеться походу остаться на botva2.dll. :(
Dodakaedr
15-05-2014, 20:59
Ставил изображения через Редактор форм в расширенном Инно. Добавлял BitmapImage.
Возможно ли как-то сделать на этих страницах разные шапки. Если да, то как? Заранее спасибо! »
Приблизительно так:[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
[Languages]
Name: "RU"; MessagesFile: "compiler:Languages\Russian.isl"
[Files]
DestName: "WizardForm.BitmapImage1.bmp"; Source: "1.bmp"; Flags: dontcopy solidbreak
DestName: "WizardForm.BitmapImage2.bmp"; Source: "2.bmp"; Flags: dontcopy solidbreak
DestName: "WizardForm.BitmapImage3.bmp"; Source: "3.bmp"; Flags: dontcopy solidbreak
DestName: "WizardForm.BitmapImage4.bmp"; Source: "4.bmp"; Flags: dontcopy solidbreak
Source: "compiler:Languages\Russian.isl"; DestDir: "{app}"; DestName: "TextRussian.isl"; Check: IsComponent(1)
Source: "compiler:Default.isl"; DestDir: "{app}"; DestName: "TextEnglish.isl"; Check: IsComponent(2)
Source: "compiler:Languages\Russian.isl"; DestDir: "{app}"; DestName: "VoiceRussian.isl"; Check: IsComponent(4)
Source: "compiler:Default.isl"; DestDir: "{app}"; DestName: "VoiceEnglish.isl"; Check: IsComponent(5)
[Types]
Name: full; Description: Full installation; Flags: iscustom
[Components]
Name: text; Description: Дополнительное по; Types: full;
Name: text\DirectX; Description: DirectX 9;
Name: text\Visual; Description: Microsoft Visual C++;
[CustomMessages]
RU.CompSubtitlesLng=Язык субтитров
RU.CompVoiceLng=Язык озвучки
RU.CompRussian=Русский
RU.CompEnglish=Английский
[ code]
var
Flag: Boolean;
SettingButton: TButton;
ComponentsPage: TWizardPage;
ComponentsList: TNewCheckListBox;
BitmapImage1, BitmapImage2, BitmapImage3, BitmapImage4: TBitmapImage;
procedure HideShowOnClick(Sender: TObject);
begin
if Flag = False then begin
WizardForm.ClientWidth:= ScaleX(497);
WizardForm.ClientHeight:= ScaleY(360);
Flag:= True;
SettingButton.Caption:= '[]';
end else begin
WizardForm.ClientWidth:= ScaleX(497);
WizardForm.ClientHeight:= ScaleY(500);
Flag:= False;
SettingButton.Caption:= '[]';
end;
end;
function IsComponent(CompIndex: Integer): Boolean;
var
i: Integer;
begin
Result := False;
for i := 0 to ComponentsList.ItemCount - 1 do
begin
if CompIndex <= (ComponentsList.ItemCount - 1) then
Result := ComponentsList.Checked[CompIndex];
end;
end;
procedure InitializeWizard();
begin
WizardForm.WizardSmallBitmapImage.Hide;
SettingButton:= TButton.Create(WizardForm);
SettingButton.SetBounds(ScaleX(10),ScaleY(325), ScaleX(30), ScaleY(30))
SettingButton.Caption:= '[]';
SettingButton.OnClick:= @HideShowOnClick;
SettingButton.Parent:= WizardForm;
Flag:=True;
ComponentsList := TNewCheckListBox.Create(WizardForm);
with ComponentsList do
begin
Parent := WizardForm;
SetBounds(ScaleX(40), ScaleY(370), ScaleX(417), ScaleY(100));
AddCheckBox(CustomMessage('CompSubtitlesLng'), '', 0, True, False, False, True, nil);
AddRadioButton(CustomMessage('CompRussian'), '', 1, True, True, nil);
AddRadioButton(CustomMessage('CompEnglish'), '', 1, False, True, nil);
AddCheckBox(CustomMessage('CompVoiceLng'), '', 0, True, False, False, True, nil);
AddRadioButton(CustomMessage('CompRussian'), '', 1, True, True, nil);
AddRadioButton(CustomMessage('CompEnglish'), '', 1, False, True, nil);
end;
BitmapImage1 := TBitmapImage.Create(WizardForm);
with BitmapImage1 do
begin
Parent := WizardForm.MainPanel;
Left := ScaleX(440);
Top := ScaleY(1);
Width := ScaleX(55);
Height := ScaleY(55);
ExtractTemporaryFile('WizardForm.BitmapImage1.bmp');
Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizardForm.BitmapImage1.bmp'));
end;
BitmapImage2 := TBitmapImage.Create(WizardForm);
with BitmapImage2 do
begin
Parent := WizardForm.MainPanel;
Left := ScaleX(440);
Top := ScaleY(1);
Width := ScaleX(55);
Height := ScaleY(55);
ExtractTemporaryFile('WizardForm.BitmapImage2.bmp');
Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizardForm.BitmapImage2.bmp'));
end;
BitmapImage3 := TBitmapImage.Create(WizardForm);
with BitmapImage3 do
begin
Parent := WizardForm.MainPanel;
Left := ScaleX(440);
Top := ScaleY(1);
Width := ScaleX(55);
Height := ScaleY(55);
ExtractTemporaryFile('WizardForm.BitmapImage3.bmp');
Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizardForm.BitmapImage3.bmp'));
end;
BitmapImage4 := TBitmapImage.Create(WizardForm);
with BitmapImage4 do
begin
Parent := WizardForm.MainPanel;
Left := ScaleX(440);
Top := ScaleY(1);
Width := ScaleX(55);
Height := ScaleY(55);
ExtractTemporaryFile('WizardForm.BitmapImage4.bmp');
Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizardForm.BitmapImage4.bmp'));
end;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
case CurPageID of
wpSelectDir:
begin
BitmapImage1.Show;
BitmapImage2.Hide;
BitmapImage3.Hide;
BitmapImage4.Hide;
end;
wpSelectComponents:
begin
BitmapImage2.Show;
BitmapImage1.Hide;
BitmapImage3.Hide;
BitmapImage4.Hide;
end;
wpReady:
begin
BitmapImage3.Show;
BitmapImage2.Hide;
BitmapImage1.Hide;
BitmapImage4.Hide;
end;
wpInstalling:
begin
BitmapImage4.Show;
BitmapImage2.Hide;
BitmapImage3.Hide;
BitmapImage1.Hide;
end;
end;
end;
Kashtan007
15-05-2014, 22:20
Dodakaedr, спасибо большое. Все получилось!)
Антон_Мураткин@vk
16-05-2014, 00:00
Всем привет. А можно на текст наложить тень или эфект двойной контур или чего нибудь подобное? Заранее благодарю.
а как больше путей добавить без понятия. »
Аналогичным способом вызвать Exec для второго ключа или раздела.
А можно на текст наложить тень или эфект двойной контур »
Антон_Мураткин@vk, Можно создать два лейбла. (То есть второй для тени.) Как то так.
WelcomeLabel1:= TLabel.Create(WizardForm);
with WelcomeLabel1 do begin
AutoSize:=False;
SetBounds(ScaleX(-26), ScaleY(31), ScaleX(550), ScaleY(70));
WordWrap:=True;
Alignment := taCenter;
Transparent:=True;
Font.Name:='Georgia';
Font.Size:= 14;
Font.Color:=$000000;
Font.Style:=[fsBold];
Caption:= ExpandConstant('{cm:Welcome1}');
Parent:=WizardForm.WelcomePage;
end;
WelcomeLabel2:= TLabel.Create(WizardForm);
with WelcomeLabel2 do begin
AutoSize:=False;
SetBounds(ScaleX(-27), ScaleY(30), ScaleX(550), ScaleY(70));
WordWrap:=True;
Alignment := taCenter;
Transparent:=True;
Font.Name:='Georgia';
Font.Size:= 14;
Font.Color:=$FFFFFF;
Font.Style:=[fsBold];
Caption:= ExpandConstant('{cm:Welcome1}');
Parent:=WizardForm.WelcomePage;
end;
Dodakaedr
16-05-2014, 12:33
saurn, С восстановлением разобрался »
Нет не разобрался((( код не восстанавливает экспортированный ключ...
[Registry]
Root: HKCR; SubKey: .mp3; BeforeInstall: IsRegExport(); Check: AudioCheck;
[ Code]
procedure IsRegExport();
var
i: Integer;
RegKey: String;
begin
RegKey := 'HKEY_CLASSES_ROOT\.mp3';
Exec( ExpandConstant( '{win}\regedit.exe' ), '-ea mp3.reg ' + AddQuotes( RegKey ), ExpandConstant( '{app}' ), SW_HIDE, ewWaitUntilTerminated, i );
end;
procedure IsRegImport();
var
i: Integer;
RegFile: String;
begin
RegFile:= ExpandConstant('{app}\mp3.reg');
if FileExists(RegFile) <> False then
Exec( 'regedit.exe', ' /s ' + AddQuotes( RegFile ), ExpandConstant( '{win}' ), SW_HIDE, ewWaitUntilTerminated, i );
end;
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
case CurUninstallStep of
usUninstall: IsRegImport();
end;
end;
diman_21Ru
16-05-2014, 13:49
Всем привет у меня в скрипте есть установка модов на Мир Танков и автопоиск игры а как мне можно дополнительно программы устнавливать чтобы программы в конце установки вышли а не рспаковывались , скрипты все есть каков пусть лишь нужен ,заранее спасибо
Kashtan007
16-05-2014, 15:57
Всем привет. Как добавить фон для установщика. Если делать это через Редактор форм, а точнее BitmapImage то её закрывают такие элементы как компонент лист, блок с текстом и т.д. В итоге получается что видны только края картинки. Я видел, в справке есть другой вариант, но он более трудоемкий. Если ли способы полегче. Как залить фон для установщика! Заранее спасибо за ответ!
Как залить фон для установщика! »
Kashtan007, Вот можно так:http://rghost.ru/55220479 =)
Kashtan007
16-05-2014, 19:26
Shift85, спасибо, но немножко не то.
Как сделать эти серые окна прозрачные?
http://rghost.ru/55222907/image.png
Как сделать эти серые окна прозрачные? »
Kashtan007, Попробуй.
const
TransparentPercent = 50; // процент прозрачности
WS_EX_LAYERED = $80000;
WS_EX_TRANSPARENT = $20;
LWA_COLORKEY = 1;
LWA_ALPHA = 2;
GWL_EXSTYLE = (-20);
function SetLayeredWindowAttributes(hwnd: HWND; crKey: TColor; bAlpha: BYTE; dwFlags: DWORD): Boolean;
external 'SetLayeredWindowAttributes@user32.dll stdcall';
function GetWindowLong(Wnd: HWnd; Index: Integer): Longint;
external 'GetWindowLongA@user32.dll stdcall';
function SetWindowLong(Wnd: HWnd; Index: Integer; NewLong: Longint): Longint;
external 'SetWindowLongA@user32.dll stdcall';
Procedure InitializeWizard();
begin
SetWindowLong(WizardForm.Handle, GWL_EXSTYLE, GetWindowLong(WizardForm.Handle, GWL_EXSTYLE) or WS_EX_LAYERED);
SetLayeredWindowAttributes(WizardForm.Handle, 0, (255 * TransparentPercent) / 100, LWA_ALPHA);
end;
Kashtan007
16-05-2014, 20:15
Shift85, весь установщик стал прозрачный.. А мне нужно чтобы внутри серые блоки были прозрачные.
ROMKA-1977
17-05-2014, 18:29
Подскажите пожалуйста. Применяю архивы FreeArc, для отображения размера установленной проги в окне "Удаление программ" в секции [Setup] указываю: UninstallDisplaySize=3176374272. Как правильно указать чтобы размер отображался в зависимости от выбранных компонентов?
saneksanek
18-05-2014, 04:32
Здрасте.может кто-то помочь если не трудно,не выходит не как в данный код добавить чек-бокс в завершение,для запуска игры после установки.var MainImage : TBitmapImage;
FinishedImage: TBitmapImage;
WelcomeLabel1, WelcomeLabel2,StartMenuLbl,FinishedLabel,Welcome1,Welcome2,NeedSpaceLabel,SelectTasksLabel, FreeSpaceLabel, FinishedHeadingLabel: TLabel;
procedure InitializeWizard();
begin
ExtractTemporaryFile('1.bmp');
MainImage := TBitmapImage.Create(WizardForm);
with MainImage do
begin
Parent := WizardForm;
Left := 0;
Top := 0;
Width := 500;
Height := 313;
Bitmap.LoadFromFile(ExpandConstant('{tmp}\1.bmp'));
end;
ExtractTemporaryFile('2.bmp');
FinishedImage := TBitmapImage.Create(WizardForm);
with FinishedImage do
begin
Parent := WizardForm;
Left := 0;
Top := 0;
Width := 500;
Height := 313;
Bitmap.LoadFromFile(ExpandConstant('{tmp}\2.bmp'));
end;
Welcome1:= TLabel.Create(WizardForm);
with Welcome1 do
begin
Left:= ScaleX(150);
Top:= ScaleY(26);
Width:= ScaleX(301);
Height:= ScaleY(71);
AutoSize:= false;
Transparent:= true;
WordWrap:= true;
Font.Size:= 12;
Font.Color:=clBlack
Font.Style := [fsBold]
Parent:= WizardForm;
Font.Name:= 'Georgia'
Caption:= ExpandConstant('{cm:Welcome1}')
end;
Welcome2:=TLabel.Create(WizardForm);
with Welcome2 do
begin
Left:= ScaleX(150);
Top:= ScaleY(66);
Width:= ScaleX(345);
Height:= ScaleY(300);
AutoSize:= false;
WordWrap:= true;
Font.Color:=clBlack
Font.Name:= 'Georgia'
Font.Size:= 9;
Transparent:= true;
Parent:= WizardForm;
Caption:= ExpandConstant('{cm:Welcome2}')
end;
FinishedHeadingLabel:=TLabel.Create(WizardForm);
with FinishedHeadingLabel do
begin
Left:= ScaleX(170);
Top:= ScaleY(26);
Width:= ScaleX(300);
Height:= ScaleY(150);
AutoSize:= false;
WordWrap:= true;
Font.Size:= 12;
Font.Color:=clBlack
Font.Name:= 'Georgia'
Font.Style := [fsBold]
Transparent:= true;
Parent:= WizardForm;
Caption:= WizardForm.FinishedHeadingLabel.Caption;
end;
FinishedLabel:= TLabel.Create(WizardForm);
with FinishedLabel do
begin
Left:= ScaleX(170);
Top:= ScaleY(66);
Width:= ScaleX(325);
Height:= ScaleY(150);
AutoSize:= false;
WordWrap:= true;
Transparent:= true;
Font.Color:=clBlack
Font.Size:= 9;
Font.Name:= 'Georgia'
Parent:= WizardForm;
Caption:= ExpandConstant('{cm:Finished1}') + #10#13#10 + ExpandConstant('{cm:Finished2}')
end;
end;
procedure HideComponents;
begin
Welcome1.Hide;
Welcome2.Hide;
FinishedHeadingLabel.Hide;
FinishedLabel.Hide;
end;
procedure ShowComponents(CurPageID: Integer);
begin
case CurPageID of
wpWelcome:
begin
Welcome1.Show;
Welcome2.Show;
end;
wpFinished:
begin
FinishedHeadingLabel.Show;
FinishedLabel.Show;
end;
end;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
HideComponents;
ShowComponents(CurPageID);
if CurPageID = wpWelcome then
begin
WizardForm.OuterNotebook.Hide;
FinishedImage.Hide;
end
else if CurPageID = wpFinished then
begin
WizardForm.OuterNotebook.Hide;
MainImage.Hide;
FinishedImage.Show;
end
else WizardForm.OuterNotebook.Show;
end;
Антон_Мураткин@vk
18-05-2014, 09:50
Shift85, Всё нормально, но второй текст (типа тени) появляется на всех остальных страницах. Как это исправить?
ROMKA-1977
18-05-2014, 11:43
saneksanek,
#define MyAppName "Need for Speed: The Run - Limited Edition"
#define MyAppExeName "Need For Speed The Run.exe"
[CustomMessages]
russian.RunEntryExec=Запустить {#MyAppName}
[Code]
///////////////////////// Чекбокс запуска приложения на странице завершения установки /////////////////////////
var
RunProgram: TCheckBox;
RunProgramLabel: TLabel;
procedure LabelOnClick(Sender: TObject);
begin
case Sender of
RunProgramLabel: begin RunProgram.Checked:= not RunProgram.Checked; end;
end;
end;
procedure DeinitializeSetup();
var ResultCode: Integer;
begin
if (WizardForm.CurPageID=wpFinished) and (RunProgram.Checked) then
Exec(ExpandConstant('{app}\{#MyAppExeName}'), '', '', SW_SHOWNORMAL, ewNoWait, ResultCode);
end;
procedure InitializeWizard();
begin
RunProgram:= TCheckBox.Create(WizardForm);
with RunProgram do
begin
Parent:= WizardForm.FinishedPage;
SetBounds(ScaleX(65), ScaleY(147), ScaleX(13), ScaleY(13)) //Координаты чекбокса
TabOrder:= 5;
Checked:= False; //Если необходимо, можно поменять на True
end;
RunProgramLabel:= TLabel.Create(WizardForm);
with RunProgramLabel do
begin
Caption:=ExpandConstant('{cm:RunEntryExec}');
SetBounds(ScaleX(85), ScaleY(147), ScaleX(150), ScaleY(13)) //Координаты текста чекбокса
Transparent := True;
Font.Color:= clWhite;
Parent:= WizardForm.FinishedPage;
OnClick:= @LabelOnClick;
end;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
RunProgram.Hide;
RunProgramLabel.Hide;
if CurPageId = wpFinished then
begin
RunProgram.Show;
RunProgramLabel.Show;
end;
if (CurPageID = wpFinished) and ISDoneError then
begin
RunProgram.hide;
RunProgramLabel.hide;
end;
end;
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC