Пользователь
Сообщения: 144
Благодарности: 3
|
Профиль
|
Отправить PM
| Цитировать
Лександер, может быть что нибудь в скрипте не так
Код:
; by Evgeniy Bytaikis
#include "botva2.iss"
#include "BASS_Module.iss"
[Setup]
AppName=Sigerous Mod äëÿ COP
AppVerName=Sigerous Mod v2.2
DefaultDirName={pf}\S.T.A.L.K.E.R. - Çîâ Ïðèïÿòè
InfoBeforeFile=embedded\InfoBefore.rtf
WizardImageFile=embedded\WizardImage.bmp
WizardSmallImageFile=embedded\logotip.bmp
SetupIconFile=embedded\sgm.ico
Compression=zip
OutputDir=.
[Languages]
Name: eng; MessagesFile: compiler:Languages\english.isl
Name: rus; MessagesFile: compiler:Languages\Russian.isl
[CustomMessages]
eng.ArcCancel=Îòìåíèòü
eng.ArcBreak=Installation cancelled!
eng.ExtractedInfo=Extracted %1 Mb of %2 Mb
eng.ArcInfo=Archive: %1 of %2
eng.ArcTitle=Extracting FreeArc archive
eng.ArcError=Decompression failed with error code %1
eng.ArcFail=Decompression failed!
eng.AllProgress=Overall extraction progress: %1%%
eng.ArcBroken=Archive %1 is damaged%nor not enough free space.
eng.Extracting=Extracting: %1
eng.taskbar=%1%%, %2 remains
eng.remains=Remaining time: %1
eng.LongTime=at no time
eng.ending=ending
eng.hour= hours
eng.min= mins
eng.sec= secs
rus.ArcCancel=Îòìåíèòü ðàñïàêîâêó
rus.ArcBreak=Óñòàíîâêà ïðåðâàíà!
rus.ExtractedInfo=Ðàñïàêîâàíî %1 Ìá èç %2 Ìá
rus.ArcInfo=Àðõèâ: %1 èç %2
rus.ArcTitle=Ðàñïàêîâêà àðõèâîâ FreeArc
rus.ArcError=Ðàñïàêîâùèê FreeArc âåðíóë êîä îøèáêè: %1
rus.ArcFail=Ðàñïàêîâêà íå çàâåðøåíà!
rus.AllProgress=Îáùèé ïðîãðåññ ðàñïàêîâêè: %1%%
rus.ArcBroken=Âîçìîæíî, àðõèâ %1 ïîâðåæä¸í%nèëè íåäîñòàòî÷íî ìåñòà íà äèñêå íàçíà÷åíèÿ.
rus.Extracting=Ðàñïàêîâûâàåòñÿ: %1
rus.taskbar=%1%%, æäè %2
rus.remains=Îñòàëîñü %1
rus.LongTime=âå÷íî
rus.ending=çàâåðøåíèå
rus.hour= ÷àñîâ
rus.min= ìèí
rus.sec= ñåê
[Files]
Source: *.arc; DestDir: {app}; Flags: dontcopy
Source: unarc.dll; DestDir: {tmp}; Flags: dontcopy deleteafterinstall
Source: compiler:InnoCallback.dll; DestDir: {tmp}; Flags: dontcopy
Source: BASS_Files\*; DestDir: {tmp}; Flags: dontcopy
Source: music.mp3; DestDir: {tmp}; Flags: dontcopy
[UninstallDelete]
Type: filesandordirs; Name: "{app}\gamedata"
Type: files; Name: "{app}\SGM_COP_history.rtf"
Type: files; Name: "{app}\SGM_COP_info.rtf"
Type: files; Name: "{app}\SGM_what_in_v2.2.txt"
[_Code]
{ RedesignWizardFormBegin } // Íå óäàëÿòü ýòó ñòðîêó!
// Íå èçìåíÿòü ýòó ñåêöèþ. Îíà ñîçäàíà àâòîìàòè÷åñêè.
var
Label1: TLabel;
procedure RedesignWizardForm;
begin
with WizardForm do
begin
AutoScroll := False;
ClientWidth := ScaleX(496);
end;
with WizardForm.CancelButton do
begin
Left := ScaleX(409);
end;
with WizardForm.NextButton do
begin
Left := ScaleX(309);
end;
with WizardForm.BackButton do
begin
Left := ScaleX(221);
end;
{ Label1 }
Label1 := TLabel.Create(WizardForm);
with Label1 do
begin
Name := 'Label1';
Parent := WizardForm.SelectDirPage;
Caption := 'Ðàñïàêóéòå â ïàïêó ñ óñòàíîâëåíîé èãðîé Ñòàëêåð Çîâ Ïðèïÿòè';
Color := clBtnFace;
Font.Color := clRed;
Font.Height := -11;
Font.Name := 'Tahoma';
Font.Style := [];
ParentColor := False;
ParentFont := False;
Transparent := False;
Left := ScaleX(0);
Top := ScaleY(112);
Width := ScaleX(328);
Height := ScaleY(13);
end;
with WizardForm.WizardSmallBitmapImage do
begin
Left := ScaleX(0);
Width := ScaleX(495);
end;
with WizardForm.PageDescriptionLabel do
begin
Left := ScaleX(0);
Top := ScaleY(58);
end;
with WizardForm.PageNameLabel do
begin
Width := ScaleX(261);
end;
with WizardForm.FinishedLabel do
begin
Caption := 'Sigerous Mod äëÿ COP óñòàíîâëåí íà Âàø êîìïüþòåð. Ïðèëîæåíèå ìîæíî çàïóñòèòü ñ ïîìîùüþ ñîîòâåòñòâóþùåãî çíà÷êà.' + #13#10 +
'' + #13#10 +
'Íàæìèòå «Çàâåðøèòü», ÷òîáû âûéòè èç ïðîãðàììû óñòàíîâêè.' + #13#10 +
'';
end;
{ ReservationBegin }
// Âû ìîæåòå äîáàâèòü âàø êîä çäåñü.
{ ReservationEnd }
end;
// Íå èçìåíÿòü ýòó ñåêöèþ. Îíà ñîçäàíà àâòîìàòè÷åñêè.
{ RedesignWizardFormEnd } // Íå óäàëÿòü ýòó ñòðîêó!
const
Archives = '{src}\*.arc'; // óêàæèòå ðàñïîëîæåíèå àðõèâîâ FreeArc; äëÿ âíåøíèõ ôàéëîâ ñòðîêó â [Files] äîáàâëÿòü íåîáÿçàòåëüíî
totalSize = 2387; // total uncompressed size of archive data in mb, REQUIRED for correct progress displaying
PM_REMOVE = 1;
CP_ACP = 0; CP_UTF8 = 65001;
type
#ifdef UNICODE ; åñëè ó âàñ îøèáêà íà ýòîé ñòðîêå, òî óñòàíîâèòå ïðåïðîöåññîð èëè èñïðàâüòå ñêðèïò äëÿ âàøåé âåðñèè Inno Setup
#define A "W"
#else
#define A "A" ; òî÷êà âõîäà â SetWindowText, {#A} ìåíÿåòñÿ íà A èëè W â çàâèñèìîñòè îò âåðñèè
#endif
#if Ver < 84018176
AnsiString = String; // There is no need for this line in Inno Setup 5.2.4 and below (äëÿ Inno Setup âåðñèé 5.2.4 è âûøå ýòà ñòðîêà íå íóæíà)
#endif
TMyMsg = record
hwnd: HWND;
message: UINT;
wParam: Longint;
lParam: Longint;
time: DWORD;
pt: TPoint;
end;
TFreeArcCallback = function (what: PAnsiChar; int1, int2: Integer; str: PAnsiChar): Integer;
TArc = record Path: string; Size: Extended; end;
var
ExtractFile: TLabel;
lblExtractFileName: TLabel;
btnCancelUnpacking: TButton;
CancelCode, n, UnPackError, StartInstall: Integer;
Arcs: array of TArc;
msgError: string;
lastMb: Integer;
baseMb: Integer;
LastTimerEvent: DWORD;
MouseLabel,SiteLabel: TLabel; // Êëèêàáåëüíàÿ òåêñòîâàÿ http-ññûëêà â ëåâîì íèæíåì óãëó èíñòàëëåðà //
Function MultiByteToWideChar(CodePage: UINT; dwFlags: DWORD; lpMultiByteStr: string; cbMultiByte: integer; lpWideCharStr: string; cchWideChar: integer): longint; external 'MultiByteToWideChar@kernel32.dll stdcall';
Function WideCharToMultiByte(CodePage: UINT; dwFlags: DWORD; lpWideCharStr: string; cchWideChar: integer; lpMultiByteStr: string; cbMultiByte: integer; lpDefaultChar: integer; lpUsedDefaultChar: integer): longint; external 'WideCharToMultiByte@kernel32.dll stdcall';
function PeekMessage(var lpMsg: TMyMsg; hWnd: HWND; wMsgFilterMin, wMsgFilterMax, wRemoveMsg: UINT): BOOL; external 'PeekMessageA@user32.dll stdcall';
function TranslateMessage(const lpMsg: TMyMsg): BOOL; external 'TranslateMessage@user32.dll stdcall';
function DispatchMessage(const lpMsg: TMyMsg): Longint; external 'DispatchMessageA@user32.dll stdcall';
Function OemToChar(lpszSrc, lpszDst: AnsiString): longint; external 'OemToCharA@user32.dll stdcall';
function GetWindowLong(hWnd, nIndex: Integer): Longint; external 'GetWindowLongA@user32 stdcall delayload';
function SetWindowText(hWnd: Longint; lpString: String): Longint; external 'SetWindowText{#A}@user32 stdcall delayload';
function GetTickCount: DWord; external 'GetTickCount@kernel32';
function WrapFreeArcCallback (callback: TFreeArcCallback; paramcount: integer):longword; external 'wrapcallback@files:innocallback.dll stdcall';
function FreeArcExtract (callback: longword; cmd1,cmd2,cmd3,cmd4,cmd5,cmd6,cmd7,cmd8,cmd9,cmd10: PAnsiChar): integer; external 'FreeArcExtract@files:unarc.dll cdecl';
///////////////// Êëèêàáåëüíàÿ òåêñòîâàÿ http-ññûëêà â ëåâîì íèæíåì óãëó èíñòàëëåðà /////////////////
procedure SiteLabelOnClick(Sender: TObject);
var
ErrorCode: Integer;
begin
ShellExec('open', 'http://vk.com/by_gangster', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end;
procedure SiteLabelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=clRed;
end;
procedure SiteLabelMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=clblue;
end;
procedure SiteLabelMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=clGreen;
end;
procedure SiteLabelMouseMove2(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=clblue;
end;
///////////////// Êëèêàáåëüíàÿ òåêñòîâàÿ http-ññûëêà â ëåâîì íèæíåì óãëó èíñòàëëåðà /////////////////
procedure AppProcessMessage;
var
Msg: TMyMsg;
begin
while PeekMessage(Msg, 0, 0, 0, PM_REMOVE) do begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
end;
// Ïåðåâîä ÷èñëà â ñòðîêó ñ òî÷íîñòüþ 3 çíàêà (%.3n) ñ îêðóãëåíèåì äðîáíîé ÷àñòè, åñëè îíà åñòü
Function NumToStr(Float: Extended): String;
Begin
Result:= Format('%.3n', [Float]); StringChange(Result, ',', '.');
while ((Result[Length(Result)] = '0') or (Result[Length(Result)] = '.')) and (Length(Result) > 1) do
SetLength(Result, Length(Result)-1);
End;
function cm(Message: String): String; Begin Result:= ExpandConstant('{cm:'+ Message +'}') End;
Function Size64(Hi, Lo: Integer): Extended;
Begin
Result:= Lo;
if Lo<0 then Result:= Result + $7FFFFFFF + $7FFFFFFF + 2;
for Hi:= Hi-1 Downto 0 do
Result:= Result + $7FFFFFFF + $7FFFFFFF + 2;
End;
// OnClick event function for btnCancel
procedure btnCancelUnpackingOnClick(Sender: TObject);
begin
if MsgBox( SetupMessage( msgExitSetupMessage ), mbInformation, MB_YESNO ) = IDYES then
CancelCode:= -127;
end;
// Scans the specified folders for archives and add them to list
function FindArcs(dir: string): Extended;
var
FSR: TFindRec;
Begin
if FindFirst(ExpandConstant(dir), FSR) then
try
repeat
// Skip everything but the folders
if FSR.Attributes and FILE_ATTRIBUTE_DIRECTORY > 0 then CONTINUE;
n:= GetArrayLength(Arcs);
// Expand the folder list
SetArrayLength(Arcs, n +1);
Arcs[n].Path:= ExtractFilePath(ExpandConstant(Archives)) + FSR.Name;
Arcs[n].Size:= Size64(FSR.SizeHigh, FSR.SizeLow);
Result:= Result + Arcs[n].Size;
until not FindNext(FSR);
finally
FindClose(FSR);
end;
End;
// Converts OEM encoded string into ANSI
// Ïðåîáðàçóåò OEM ñòðîêó â ANSI êîäèðîâêó
function OemToAnsiStr( strSource: AnsiString): AnsiString;
var
nRet : longint;
begin
SetLength( Result, Length( strSource ) );
nRet:= OemToChar( strSource, Result );
end;
// Converts ANSI encoded string into UTF-8
// Ïðåîáðàçóåò ñòðîêó èç ANSI â UTF-8 êîäèðîâêó
function AnsiToUtf8( strSource: string ): string;
var
nRet : integer;
WideCharBuf: string;
MultiByteBuf: string;
begin
strSource:= strSource + chr(0);
SetLength( WideCharBuf, Length( strSource ) * 2 );
SetLength( MultiByteBuf, Length( strSource ) * 2 );
nRet:= MultiByteToWideChar( CP_ACP, 0, strSource, -1, WideCharBuf, Length(WideCharBuf) );
nRet:= WideCharToMultiByte( CP_UTF8, 0, WideCharBuf, -1, MultiByteBuf, Length(MultiByteBuf), 0, 0);
Result:= MultiByteBuf;
end;
// Sets the TaskBar title
Procedure SetTaskBarTitle(Title: String); var h: Integer;
Begin
h:= GetWindowLong(MainForm.Handle, -8); if h <> 0 then SetWindowText(h, Title);
End;
// Converts milliseconds to human-readable time
// Êîíâåðòèðóåò ìèëèñåêóíäû â ÷åëîâåêî-÷èòàåìîå èçîáðàæåíèå âðåìåíè
Function TicksToTime(Ticks: DWord; h,m,s: String; detail: Boolean): String;
Begin
if detail then {hh:mm:ss format}
Result:= PADZ(IntToStr(Ticks/3600000), 2) +':'+ PADZ(IntToStr((Ticks/1000 - Ticks/1000/3600*3600)/60), 2) +':'+ PADZ(IntToStr(Ticks/1000 - Ticks/1000/60*60), 2)
else if Ticks/3600 >= 1000 {more than hour} then
Result:= IntToStr(Ticks/3600000) +h+' '+ PADZ(IntToStr((Ticks/1000 - Ticks/1000/3600*3600)/60), 2) +m
else if Ticks/60 >= 1000 then {1..60 minutes}
Result:= IntToStr(Ticks/60000) +m+' '+ PADZ(IntToStr(Ticks/1000 - Ticks/1000/60*60), 2) +s
else Result:= IntToStr(Ticks/1000) +s {less than one minute}
End;
// The main callback function for unpacking FreeArc archives
function FreeArcCallback (what: PAnsiChar; Mb, sizeArc: Integer; str: PAnsiChar): Integer;
var
percents, Remaining: Integer;
s: String;
begin
if GetTickCount - LastTimerEvent > 1000 then begin
// This code will be executed once each 1000 ms (ýòîò êîä áóäåò âûïîëíÿòüñÿ ðàç â 1000 ìèëëèñåêóíä)
// ....
// End of code executed by timer
LastTimerEvent := LastTimerEvent+1000;
end;
if string(what)='filename' then begin
// Update FileName label
lblExtractFileName.Caption:= FmtMessage( cm( 'Extracting' ), [OemToAnsiStr( str )] )
end else if (string(what)='written') and (totalSize>0) and (Mb>lastMb) then begin
// Assign to Mb *total* amount of data extracted to the moment from all archives
lastMb := Mb;
Mb := baseMb+Mb;
// Update progress bar
WizardForm.ProgressGauge.Position:= Mb;
// Show how much megabytes/archives were processed up to the moment
percents:= (Mb*1000) div totalSize;
s := FmtMessage(cm('ExtractedInfo'), [IntToStr(Mb), IntToStr(totalSize)]);
if GetArrayLength(Arcs)>1 then
s := s + '. '+FmtMessage(cm('ArcInfo'), [IntToStr(n+1), IntToStr(GetArrayLength(Arcs))]);
ExtractFile.Caption := s;
// Calculate and show current percents
percents:= (Mb*1000) div totalSize;
s:= FmtMessage(cm('AllProgress'), [Format('%.1n', [Abs(percents/10)])]);
if Mb > 0 then Remaining:= trunc((GetTickCount - StartInstall) * Abs((totalSize - Mb)/Mb)) else Remaining:= 0;
if Remaining = 0 then SetTaskBarTitle(cm('ending')) else begin
s:= s + '. '+FmtMessage(cm('remains'), [TicksToTime(Remaining, cm('hour'), cm('min'), cm('sec'), false)])
SetTaskBarTitle(FmtMessage(cm('taskbar'), [IntToStr(percents/10), TicksToTime(Remaining, 'h', 'm', 's', false)]))
end;
WizardForm.FileNameLabel.Caption := s
end;
AppProcessMessage;
Result:= CancelCode;
end;
// Extracts all found archives
function UnPack(Archives: string): Integer;
var
allSize: Extended;
callback: longword;
FreeMB, TotalMB: Cardinal;
begin
// Display 'Extracting FreeArc archive'
lblExtractFileName.Caption:= '';
lblExtractFileName.Show;
ExtractFile.caption:= cm('ArcTitle');
ExtractFile.Show;
// Show the 'Cancel unpacking' button and set it as default button
btnCancelUnpacking.Show;
WizardForm.ActiveControl:= btnCancelUnpacking;
WizardForm.ProgressGauge.Position:= 0;
WizardForm.ProgressGauge.Max:= totalSize;
// Get the size of all archives
allSize:= FindArcs(Archives);
// Other initializations
callback:= WrapFreeArcCallback(@FreeArcCallback,4); //FreeArcCallback has 4 arguments
StartInstall:= GetTickCount; {âðåìÿ íà÷àëà ðàñïàêîâêè}
LastTimerEvent:= GetTickCount;
baseMb:= 0
for n:= 0 to GetArrayLength(Arcs) -1 do
begin
lastMb := 0
CancelCode:= 0;
AppProcessMessage;
try
// Pass the specified arguments to 'unarc.dll'
Result:= FreeArcExtract (callback, 'x', '-o+', '-dp' + AnsiToUtf8( ExpandConstant('{app}') ), '--', AnsiToUtf8(Arcs[n].Path), '', '', '', '', '');
if CancelCode < 0 then Result:= CancelCode;
except
Result:= -63; // ArcFail
end;
baseMb:= baseMb+lastMb
// Error occured
if Result <> 0 then
begin
msgError:= FmtMessage(cm('ArcError'), [IntToStr(Result)]);
GetSpaceOnDisk(ExtractFileDrive(ExpandConstant('{app}')), True, FreeMB, TotalMB);
case Result of
-1: if FreeMB < 32 {Ìá íà äèñêå} then msgError:= SetupMessage(msgDiskSpaceWarningTitle)
else msgError:= msgError + #13#10 + FmtMessage(cm('ArcBroken'), [ExtractFileName(Arcs[n].Path)]);
-127: msgError:= cm('ArcBreak'); //Cancel button
-63: msgError:= cm('ArcFail');
end;
// MsgBox(msgError, mbInformation, MB_OK); //ñîîáùåíèå ïîêàçûâàåòñÿ íà ñòðàíèöå çàâåðøåíèÿ
Log(msgError);
Break; //ïðåðâàòü öèêë ðàñïàêîâêè
end;
end;
// Hide labels and button
lblExtractFileName.Hide;
ExtractFile.Hide;
btnCancelUnpacking.Hide;
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then
begin
UnPackError:= UnPack(Archives)
if UnPackError = 0 then
SetTaskBarTitle(SetupMessage(msgSetupAppTitle))
else
begin
// Error occured, uninstall it then
Exec(ExpandConstant('{uninstallexe}'), '/SILENT','', sw_Hide, ewWaitUntilTerminated, n); //îòêàò óñòàíîâêè èç-çà îøèáêè unarc.dll
SetTaskBarTitle(SetupMessage(msgErrorTitle))
WizardForm.Caption:= SetupMessage(msgErrorTitle) +' - '+ cm('ArcBreak')
end;
end;
end;
// ñòàíäàðòíûé ñïîñîá îòêàòà (íå íóæíà CurPageChanged), íî àðõèâû ðàñïàêîâûâàþòñÿ äî èçâëå÷åíèÿ ôàéëîâ èíñòàëëÿòîðà
// if CurStep = ssInstall then
// if UnPack(Archives) <> 0 then Abort;
Procedure CurPageChanged(CurPageID: Integer);
Begin
if (CurPageID = wpFinished) and (UnPackError <> 0) then
begin // Extraction was unsuccessful (ðàñïàêîâùèê âåðíóë îøèáêó)
WizardForm.FinishedLabel.Font.Color:= $0000C0; // red (êðàñíûé)
WizardForm.FinishedLabel.Height:= WizardForm.FinishedLabel.Height * 2;
WizardForm.FinishedLabel.Caption:= SetupMessage(msgSetupAborted) + #13#10#13#10 + msgError;
end;
end;
procedure InitializeWizard();
begin
RedesignWizardForm;
with WizardForm.ProgressGauge do
begin
// Create a label to show current FileName being extracted
lblExtractFileName:= TLabel.Create(WizardForm);
lblExtractFileName.parent:=WizardForm.InstallingPage;
lblExtractFileName.autosize:=false;
lblExtractFileName.Width:= Width;
lblExtractFileName.top:=Top + ScaleY(35);
lblExtractFileName.Caption:= '';
lblExtractFileName.Hide;
// Create a label to show percentage
ExtractFile:= TLabel.Create(WizardForm);
ExtractFile.parent:=WizardForm.InstallingPage;
ExtractFile.autosize:=false;
ExtractFile.Width:= Width;
ExtractFile.top:=lblExtractFileName.Top + ScaleY(16);
ExtractFile.caption:= '';
ExtractFile.Hide;
/////Ìóçûêà/////
ExtractTemporaryFile('BASS.dll');
ExtractTemporaryFile('Music.mp3');
BASS_Init(ExpandConstant('{tmp}\Music.mp3')) //Ïðîñòî çàïóñêàåì ìóçûêó
//////Êîíåö ìóçûêà/////
end;
// Create a 'Cancel unpacking' button and hide it for now.
btnCancelUnpacking:=TButton.create(WizardForm);
btnCancelUnpacking.Parent:= WizardForm;
btnCancelUnpacking.SetBounds(ScaleX(260), WizardForm.cancelbutton.top, ScaleX(140), WizardForm.cancelbutton.Height);
btnCancelUnpacking.OnClick:= @btnCancelUnpackingOnClick;
btnCancelUnpacking.Caption:= cm('ArcCancel');
btnCancelUnpacking.Hide;
///////////////// Êëèêàáåëüíàÿ òåêñòîâàÿ http-ññûëêà â ëåâîì íèæíåì óãëó èíñòàëëåðà /////////////////
MouseLabel:=TLabel.Create(WizardForm);
MouseLabel.Width:=WizardForm.Width;
MouseLabel.Height:=WizardForm.Height;
MouseLabel.Autosize:=False;
MouseLabel.Transparent:=True;
MouseLabel.OnMouseMove:=@SiteLabelMouseMove2;
MouseLabel.Parent:=WizardForm;
SiteLabel:=TLabel.Create(WizardForm);
SiteLabel.Left:=10;
SiteLabel.Top:=330;
SiteLabel.Cursor:=crHand;
SiteLabel.Font.Color:=clblue;
SiteLabel.Caption:='Installer by Evgeniy Bytaikis';
SiteLabel.OnClick:=@SiteLabelOnClick;
SiteLabel.OnMouseDown:=@SiteLabelMouseDown;
SiteLabel.OnMouseUp:=@SiteLabelMouseUp;
SiteLabel.OnMouseMove:=@SiteLabelMouseMove;
SiteLabel.Parent:=WizardForm;
///////////////// Êëèêàáåëüíàÿ òåêñòîâàÿ http-ññûëêà â ëåâîì íèæíåì óãëó èíñòàëëåðà /////////////////
end;
//////Ìóçûêà/////////
procedure DeinitializeSetup();
begin
BASS_DeInit;
end;
/////Êîíåö ìóçûêà//////
[ISFormDesigner]
WizardForm=FF0A005457495A415244464F524D003010D406000054504630F10B5457697A617264466F726D0A57697A617264466F726D0C436C69656E744865696768740368010B436C69656E74576964746803F0010C4578706C696369744C65667402000B4578706C69636974546F7002000D4578706C6963697457696474680300020E4578706C69636974486569676874038E010D506978656C73506572496E636802600A54657874486569676874020D00F10A544E6577427574746F6E0C43616E63656C427574746F6E044C6566740399010C4578706C696369744C6566740399010000F10A544E6577427574746F6E0A4E657874427574746F6E044C6566740335010C4578706C696369744C6566740335010000F10A544E6577427574746F6E0A4261636B427574746F6E044C65667403DD000C4578706C696369744C65667403DD000000F10C544E65774E6F7465626F6F6B0D4F757465724E6F7465626F6F6B00F110544E65774E6F7465626F6F6B506167650B57656C636F6D65506167650D4578706C69636974576964746803F1010E4578706C696369744865696768740339010000F110544E65774E6F7465626F6F6B5061676509496E6E6572506167650D4578706C69636974576964746803F1010E4578706C6963697448656967687403390100F10C544E65774E6F7465626F6F6B0D496E6E65724E6F746
|