Пользователь
Сообщения: 90
Благодарности: 24
|
Профиль
|
Отправить PM
| Цитировать
neorom
Вот, держите! И установка дополнительного ПО и смена картинки! Картинка меняется через функцию: NextButtonClick
читать дальше »
Код:
#define NeedSize "100"
[Setup]
AppName=Footballsim Patch 2013
AppVerName=Pro Evolution Soccer 2013
DefaultDirName={pf}\Pro Evolution Soccer 2013
DisableReadyPage=true
MergeDuplicateFiles=false
SolidCompression=true
Compression=lzma/ultra64
UseSetupLdr=false
[Languages]
Name: Ukrainian; MessagesFile: compiler:Languages\Ukrainian.isl
[Run]
Filename: {app}\kitserver13\manager.exe; Flags: postinstall waituntilidle;
Filename: {app}\Soft\dxwebsetup.exe; Check: SoftInstall;
[Icons]
Name: {group}\Footballsim_Patch_2013; Filename: {app}\Footballsim_Patch_2013.exe; WorkingDir: {app}\; IconFilename: {app}\Uninstall\unins000.exe; Check: CreateIcons;
Name: {group}\Footballsim_Patch_2013.(Налаштування); Filename: {app}\settings.exe; WorkingDir: {app}\; IconFilename: {app}\Uninstall\unins000.exe; Check: CreateIcons;
Name: {group}\{cm:UninstallProgram,Footballsim_Patch_2013}; Filename: {uninstallexe}; Check: CreateIcons;
Name: {commondesktop}\Footballsim_Patch_2013; Filename: {app}\Footballsim_Patch_2013.exe; WorkingDir: {app}\; IconFilename: {app}\Uninstall\unins000.exe; Check: CreateIcons;
Name: {commondesktop}\Footballsim_Patch_2013.(Налаштування); Filename: {app}\settings.exe; WorkingDir: {app}\; IconFilename: {app}\Uninstall\unins000.exe; Check: CreateIcons;
[Files]
Source: logo.bmp; DestDir: {tmp}; Flags: dontcopy
Source: isSplash.dll; DestDir: {tmp}; Flags: dontcopy
Source: ISSkin.dll; DestDir: {tmp}; Flags: dontcopy
Source: Tiger.cjstyles; DestDir: {tmp}; Flags: dontcopy
Source: Image1.bmp; DestDir: {tmp}; Flags: dontcopy
Source: Image2.bmp; DestDir: {tmp}; Flags: dontcopy
Source: Image3.bmp; DestDir: {tmp}; Flags: dontcopy
Source: Image4.bmp; DestDir: {tmp}; Flags: dontcopy
Source: Image5.bmp; DestDir: {tmp}; Flags: dontcopy
;Source: {app}\*.*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyname
[CustomMessages]
Ukrainian.Welcome=Вас вітає Мастер встановлення доповнення {#SetupSetting("AppName")} до ігри %n{#SetupSetting("AppVerName")}.%nПрограма встановлюється {#SetupSetting("AppName")} на Ваш компютер.
Ukrainian.SelectDir=Програма встановить доповнення до ігри в наступну теку.%nЯкщо ви хочите вибрати іншу теку, натисніть «Обзор».%nНатисніть «Встановити», щоб почати встановлення доповнення.
Ukrainian.Installing=Будь-ласка, почекайте, коли доповнення {#SetupSetting("AppName")} встановиться на Ваш компьютер.
Ukrainian.Finished=Встановлення доповнення {#SetupSetting("AppVerName")} до ігри закінчена.%nВи можете запустити ігру з допомогою%n відповідного значка на «Робочому столі» або з меню «Пуск».
Ukrainian.FreeSize=Доступно місця на диску:
Ukrainian.NeedSize=Необхідно місця на диску:
Ukrainian.Icons=Создать ярлыки?
Ukrainian.DirectX=Установить дополнительное ПО?
[ code]
var
BackPanel, WizardPanel, StatusPanel, ImagePanel: TPanel;
CaptionLabel: TLabel; BmpFile: TBitmapImage;
NeedSpaceLabel,FreeSpaceLabel: TLabel;
FreeMB, TotalMB: Cardinal; NeedSize: Integer;
///////////////////////////////////////////////
Icons, DirectX: TCheckBox;
IconsLabel, DirectXLabel: TLabel;
//////////////////////////////////////////////
procedure LoadSkin(lpszPath: String; lpszIniFileName: String); external 'LoadSkin@files:isskin.dll stdcall';
procedure UnloadSkin(); external 'UnloadSkin@files:isskin.dll stdcall';
function ShowWindow(hWnd: Integer; uType: Integer): Integer; external 'ShowWindow@user32.dll stdcall';
////////////////////////////////////////////
function CreateIcons: Boolean;
begin
Result:= Icons.Checked;
end;
function SoftInstall: Boolean;
begin
Result:= DirectX.Checked;
end;
//////////////////////////////////////////////
Function NumToStr(Float: Extended): String;
Begin
Result:= Format('%.2n', [Float]); StringChange(Result, ',', '.');
while ((Result[Length(Result)] = '0') or (Result[Length(Result)] = '.')) and (Pos('.', Result) > 0) do
SetLength(Result, Length(Result)-1);
End;
procedure GetFreeSpaceCaption(Sender: TObject);
var
Path: String;
begin
Path := ExtractFileDrive(WizardForm.DirEdit.Text);
GetSpaceOnDisk(Path, True, FreeMB, TotalMB);
if FreeMB > 1024 then
FreeSpaceLabel.Caption := ExpandConstant('{cm:FreeSize} ')+ NumToStr(round(FreeMB/1024*100)/100) + ' Гб' else
FreeSpaceLabel.Caption := ExpandConstant('{cm:FreeSize} ')+ IntToStr(FreeMB)+ ' Мб';
if FreeMB < NeedSize then
WizardForm.NextButton.Enabled := False else
WizardForm.NextButton.Enabled := True;
end;
procedure GetNeedSpaceCaption;
begin
if NeedSize > 1024 then
NeedSpaceLabel.Caption := ExpandConstant('{cm:NeedSize} ')+ NumToStr(round(NeedSize/1024*100)/100) + ' Гб' else
NeedSpaceLabel.Caption := ExpandConstant('{cm:NeedSize} ')+ IntToStr(NeedSize)+ ' Мб';
end;
function InitializeSetup(): Boolean;
begin
ExtractTemporaryFile('Tiger.cjstyles');
LoadSkin(ExpandConstant('{tmp}\Tiger.cjstyles'), '');
Result := True;
end;
procedure DeinitializeSetup();
begin
ShowWindow(StrToInt(ExpandConstant('{wizardhwnd}')), 0);
UnloadSkin();
end;
procedure InitializeWizard1();
begin
NeedSize:= {#NeedSize};
ExtractTemporaryFile('Image1.bmp')
ExtractTemporaryFile('Image2.bmp')
ExtractTemporaryFile('Image3.bmp')
ExtractTemporaryFile('Image4.bmp')
ExtractTemporaryFile('Image5.bmp')
WizardForm.ClientWidth:= ScaleX(800);
WizardForm.ClientHeight:= ScaleY(620);
WizardForm.Position:= poScreenCenter;
WizardForm.InnerNotebook.Hide;
WizardForm.OuterNotebook.Hide;
WizardForm.Font.Name:= 'Georgia';
BackPanel:= TPanel.Create(WizardForm)
BackPanel.SetBounds(ScaleX(0), ScaleY(0), ScaleX(800), ScaleY(618))
BackPanel.Color:= clWhite
BackPanel.BorderStyle:= bsNone
BackPanel.ParentBackground:= False
BackPanel.ParentColor:= False
BackPanel.Parent:= WizardForm
StatusPanel:= TPanel.Create(WizardForm)
StatusPanel.SetBounds(ScaleX(2), ScaleY(2), ScaleX(796), ScaleY(18))
StatusPanel.BorderStyle:= bsNone
StatusPanel.ParentBackground:= False
StatusPanel.ParentColor:= False
StatusPanel.Font.Color:= clWhite
StatusPanel.Font.Size:= 12
StatusPanel.Font.Style:= [fsBold]
StatusPanel.Font.Name:= 'Times New Roman'
StatusPanel.Alignment:= taCenter
StatusPanel.Parent:= WizardForm
ImagePanel:= TPanel.Create(WizardForm)
ImagePanel.SetBounds(ScaleX(2), ScaleY(21), ScaleX(796), ScaleY(484))
ImagePanel.BorderStyle:= bsNone
ImagePanel.ParentBackground:= False
ImagePanel.ParentColor:= False
ImagePanel.Parent:= WizardForm
BmpFile:= TBitmapImage.Create(WizardForm)
BmpFile.Stretch:= True;
BmpFile.SetBounds(ScaleX(0),ScaleY(0), ScaleX(796), ScaleY(484))
BmpFile.Parent:= ImagePanel
WizardPanel:= TPanel.Create(WizardForm)
WizardPanel.SetBounds(ScaleX(2), ScaleY(506), ScaleX(796), ScaleY(110))
WizardPanel.Alignment:= taCenter;
WizardPanel.BorderStyle:= bsNone
WizardPanel.ParentBackground:= False
WizardPanel.ParentColor:= False
WizardPanel.Parent:= WizardForm
CaptionLabel:= TLabel.Create(WizardForm);
CaptionLabel.SetBounds(ScaleX(100), ScaleY(5), ScaleX(590), ScaleY(100));
CaptionLabel.AutoSize:= False;
CaptionLabel.WordWrap:= True;
CaptionLabel.Transparent:= True;
CaptionLabel.Font.Color:= $5F8BA2
CaptionLabel.Font.Size:= 11
CaptionLabel.Font.Style:= [fsBold]
CaptionLabel.Alignment:= taCenter;
CaptionLabel.Parent:= WizardPanel;
NeedSpaceLabel:= TLabel.Create(WizardForm);
NeedSpaceLabel.SetBounds(ScaleX(5),ScaleY(70),ScaleX(300),ScaleY(20))
NeedSpaceLabel.Transparent:= True;
NeedSpaceLabel.Font.Style:= [fsBold]
NeedSpaceLabel.Parent:= WizardPanel
FreeSpaceLabel:= TLabel.Create(WizardForm);
FreeSpaceLabel.SetBounds(ScaleX(250), ScaleY(70), ScaleX(300),ScaleY(20))
FreeSpaceLabel.Transparent:= True;
FreeSpaceLabel.Font.Style:= [fsBold]
FreeSpaceLabel.Parent:= WizardPanel
WizardForm.DirEdit.OnChange:= @GetFreeSpaceCaption;
WizardForm.DirEdit.Text:= WizardForm.DirEdit.Text + #0;
WizardForm.DirBrowseButton.Parent:= WizardForm
WizardForm.DirBrowseButton.Left:= ScaleX(455)
WizardForm.DirBrowseButton.Top:= ScaleY(590)
WizardForm.DirBrowseButton.Font.Size:= 8
WizardForm.DirBrowseButton.Font.Style:= [fsBold]
WizardForm.DirEdit.Parent:= WizardForm
WizardForm.DirEdit.Left:= ScaleX(5)
WizardForm.DirEdit.Top:= ScaleY(590)
WizardForm.DirEdit.Width:= ScaleX(445)
WizardForm.DirEdit.Font.Size:= 8
WizardForm.DirEdit.Font.Style:= [fsBold]
//////////////////////////////////////////////////
Icons:= TCheckBox.Create(WizardForm);
Icons.Parent:= WizardPanel;
Icons.Left:= ScaleX(16);
Icons.Top:= ScaleY(90);
Icons.Width:= ScaleX(12);
Icons.Height:= ScaleY(12);
Icons.Visible:= False;
IconsLabel:= TLabel.Create(WizardForm);
IconsLabel.Left:= ScaleX(36);
IconsLabel.Top:= ScaleY(90);
IconsLabel.Transparent:= True;
IconsLabel.Caption:= ExpandConstant('{cm:Icons}');
IconsLabel.Parent:= WizardPanel;
IconsLabel.Visible:= False;
DirectX:= TCheckBox.Create(WizardForm);
DirectX.Parent:= WizardPanel;
DirectX.Left:= ScaleX(216);
DirectX.Top:= ScaleY(90);
DirectX.Width:= ScaleX(12);
DirectX.Height:= ScaleY(12);
DirectX.Visible:= False;
DirectXLabel:= TLabel.Create(WizardForm);
DirectXLabel.Left:= ScaleX(236);
DirectXLabel.Top:= ScaleY(90);
DirectXLabel.Transparent:= True;
DirectXLabel.Caption:= ExpandConstant('{cm:DirectX}');
DirectXLabel.Parent:= WizardPanel;
DirectXLabel.Visible:= False;
////////////////////////////////////////////////////
WizardForm.ProgressGauge.Parent:= WizardForm
WizardForm.ProgressGauge.Left:= ScaleX(5)
WizardForm.ProgressGauge.Top:= ScaleY(590)
WizardForm.ProgressGauge.Width:= ScaleX(450)
WizardForm.StatusLabel.Parent:= WizardPanel
WizardForm.StatusLabel.SetBounds(ScaleX(5), ScaleY(52), ScaleX(300), ScaleY(20))
WizardForm.StatusLabel.Font.Style:= [fsBold]
WizardForm.FilenameLabel.Parent:= WizardPanel
WizardForm.FilenameLabel.SetBounds(ScaleX(5), ScaleY(68), ScaleX(450), ScaleY(20))
WizardForm.FilenameLabel.Font.Style:= [fsBold]
WizardForm.CancelButton.BringToFront;
WizardForm.CancelButton.Left:= ScaleX(715)
WizardForm.CancelButton.Top:= ScaleY(590)
WizardForm.CancelButton.Font.Size:= 8
WizardForm.CancelButton.Font.Style:= [fsBold]
WizardForm.NextButton.BringToFront;
WizardForm.NextButton.Left:= ScaleX(630)
WizardForm.NextButton.Top:= ScaleY(590)
WizardForm.NextButton.Font.Size:= 8
WizardForm.NextButton.Font.Style:= [fsBold]
WizardForm.BackButton.BringToFront;
WizardForm.BackButton.Left:= ScaleX(545)
WizardForm.BackButton.Top:= ScaleY(590)
WizardForm.BackButton.Font.Size:= 8
WizardForm.BackButton.Font.Style:= [fsBold]
end;
procedure CurPageChanged(CurPageID: Integer);
begin
WizardForm.DirEdit.Hide; WizardForm.DirBrowseButton.Hide;
WizardForm.Progressgauge.Hide; WizardForm.StatusLabel.Hide;
WizardForm.FilenameLabel.Hide; FreeSpaceLabel.Hide;
NeedSpaceLabel.Hide;
case CurPageID of
wpWelcome:
begin
CaptionLabel.Caption:= ExpandConstant('{cm:Welcome}')
StatusPanel.Caption:= 'Привітання'
BmpFile.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image1.bmp'))
////////////////////////////////////////////////
Icons.Visible:= False;
IconsLabel.Visible:= False;
DirectX.Visible:= False;
DirectXLabel.Visible:= False;
///////////////////////////////////////////////
end;
wpSelectDir:
begin
WizardForm.DirEdit.Show; WizardForm.DirBrowseButton.Show;
FreeSpaceLabel.Show; NeedSpaceLabel.Show;
CaptionLabel.Caption:= ExpandConstant('{cm:SelectDir}')
StatusPanel.Caption:= 'Підготовлення до встановлення'
WizardForm.NextButton.Caption:= 'Далі >'
GetNeedSpaceCaption; if FreeMB < NeedSize then WizardForm.NextButton.Enabled:=False;
BmpFile.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image2.bmp'))
////////////////////////////////////////////////
Icons.Visible:= True;
IconsLabel.Visible:= True;
DirectX.Visible:= True;
DirectXLabel.Visible:= True;
//////////////////////////////////////////////
end;
wpInstalling:
begin
WizardForm.Progressgauge.Show; WizardForm.StatusLabel.Show;
WizardForm.FilenameLabel.Show;
CaptionLabel.Caption:= ExpandConstant('{cm:Installing}')
StatusPanel.Caption:= 'Встановлення'
BmpFile.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image4.bmp'))
////////////////////////////////////////////////
Icons.Visible:= False;
IconsLabel.Visible:= False;
DirectX.Visible:= False;
DirectXLabel.Visible:= False;
///////////////////////////////////////////////
end;
wpFinished:
begin
CaptionLabel.Caption:= ExpandConstant('{cm:Finished}')
StatusPanel.Caption:= 'Закінчення'
BmpFile.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image5.bmp'))
////////////////////////////////////////////////
Icons.Visible:= False;
IconsLabel.Visible:= False;
DirectX.Visible:= False;
DirectXLabel.Visible:= False;
///////////////////////////////////////////////
end;
end;
end;
// картинка перед запуском програми.
procedure ShowSplashPic(Fpath:PAnsiChar; Start,Show,Stop:integer; TransColor,BGColor:Tcolor; CutColor,CloseOnClick:Boolean); external 'ShowSplashPic@files:issplash.dll stdcall delayload';
// Fpath - Путь к файлу картинки.
// Start - Время плавного появления мс.
// Show - Время показа мс.
// Stop - Время исчезания мс.
// TransColor - Цвет прозрачности, будет вырезан из картинки (только для bmp).
// BGColor - Цвет фона для gif картинок.
// CutColor - Если True, то цвет будет вырезан, если False то нет.
// CloseOnClick - Если True, то Закрыть при клике по картинке.
procedure InitializeWizard2();
begin
ExtractTemporaryFile('logo.bmp');
ShowSplashPic(ExpandConstant('{tmp}')+'\logo.bmp', 2000, 3000, 2000, ClWhite, ClWhite, True, True);
end;
/////////////////////////////////////////////////////////
function NextButtonClick(CurPageID: Integer): Boolean;
begin
Result:= True;
if CurPageID = wpSelectDir then
begin
if (Icons.Visible = True) and (DirectX.Visible = True ) then begin
BmpFile.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image3.bmp'));
end;
end;
end;
//////////////////////////////////////////////////////
procedure InitializeWizard();
begin
InitializeWizard1();
InitializeWizard2();
end;
Добавлено: С надписями Вы также можете поступить через: NextButtonClick
Код:
function NextButtonClick(CurPageID: Integer): Boolean;
begin
Result:= True;
if CurPageID = wpSelectDir then
begin
if (Icons.Visible = True) and (DirectX.Visible = True ) then begin
BmpFile.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image3.bmp'));
CaptionLabel.Caption:= ExpandConstant('{cm:Welcome}');
end;
end;
end;
|