zxcvvcxz1
Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору [_Setup] AppName=BOX AppVerName=BOX AppPublisher=Black angel DefaultDirName={pf}\Box DefaultGroupName=Box OutputBaseFilename=Box Compression=lzma/ultra64 OutputDir=Output [_Files] Source: InstallFiles\*; Flags: dontcopy Source: Button\*; Flags: dontcopy [_Languages] Name: rus; MessagesFile: compiler:Languages\Russian.isl [_Icons] Name: {group}\BOX; Filename: {app}\BOX.exe; WorkingDir: {app}; Comment: Çàïóñòèòü èãðó [Messages] rus.ButtonBack= rus.ButtonNext= rus.ButtonInstall= rus.ButtonFinish= rus.ButtonWizardBrowse= rus.ButtonClose= rus.ButtonCancel= [_Code] type TBtnEventProc = procedure (h:HWND); TImgPB = record Left, Top, Width, Height, MaxWidth : integer; img1,img2 : Longint; end; const BtnClickEventID = 1; BtnMouseEnterEventID = 2; var Rus: boolean; MusicButton, hCancelBtn, hNextBtn, hBackBtn, hDirBrowseBtn, hGroupBrowseBtn, hCancelUninstBtn: HWND; WFButtonFont, UPFButtonFont: TFont; CurrentImage, ProgressStep: integer; mp3Name, OldDisk, TimeLeft: string; WizardImg: Longint; LogoPanel: TPanel; LogoImage: TBitmapImage; LogoLabel: TLabel; function WrapBtnCallback(Callback: TBtnEventProc; ParamCount: Integer): Longword; external 'wrapcallback@{tmp}\innocallback.dll stdcall delayload'; function BtnCreate(hParent:HWND; Left,Top,Width,Height:integer; FileName:PAnsiChar; ShadowWidth:integer; IsCheckBtn:boolean):HWND; external 'BtnCreate@{tmp}\botva2.dll stdcall delayload'; procedure BtnRefresh(h:HWND); external 'BtnRefresh@{tmp}\botva2.dll stdcall delayload'; function BtnGetChecked(h:HWND):boolean; external 'BtnGetChecked@{tmp}\botva2.dll stdcall delayload'; procedure BtnSetChecked(h:HWND; Value:boolean); external 'BtnSetChecked@{tmp}\botva2.dll stdcall delayload'; procedure BtnSetText(h:HWND; Text:PAnsiChar); external 'BtnSetText@{tmp}\botva2.dll stdcall delayload'; procedure BtnSetVisibility(h:HWND; Value:boolean); external 'BtnSetVisibility@{tmp}\botva2.dll stdcall delayload'; function BtnGetEnabled(h:HWND):boolean; external 'BtnGetEnabled@{tmp}\botva2.dll stdcall delayload'; procedure BtnSetEnabled(h:HWND; Value:boolean); external 'BtnSetEnabled@{tmp}\botva2.dll stdcall delayload'; procedure BtnSetFont(h:HWND; Font:Cardinal); external 'BtnSetFont@{tmp}\botva2.dll stdcall delayload'; procedure BtnSetFontColor(h:HWND; NormalFontColor, FocusedFontColor, PressedFontColor, DisabledFontColor: Cardinal); external 'BtnSetFontColor@{tmp}\botva2.dll stdcall delayload'; procedure BtnSetEvent(h:HWND; EventID:integer; Event:Longword); external 'BtnSetEvent@{tmp}\botva2.dll stdcall delayload'; procedure BtnSetCursor(h:HWND; hCur:Cardinal); external 'BtnSetCursor@{tmp}\botva2.dll stdcall delayload'; procedure BtnSetPosition(h:HWND; NewLeft, NewTop, NewWidth, NewHeight: integer); external 'BtnSetPosition@{tmp}\botva2.dll stdcall delayload'; function GetSysCursorHandle(id:integer):Cardinal; external 'GetSysCursorHandle@{tmp}\botva2.dll stdcall delayload'; procedure gdipShutdown; external 'gdipShutdown@{tmp}\botva2.dll stdcall delayload'; function sndPlaySound(lpszSoundName: AnsiString; uFlags: cardinal):integer; external 'sndPlaySoundA@winmm.dll stdcall'; function InitializeSetup: Boolean; begin ExtractTemporaryFile('botva2.dll'); ExtractTemporaryFile('innocallback.dll'); ExtractTemporaryFile('Click.wav'); ExtractTemporaryFile('WFEnter.wav'); Result:=true; end; //************************************************ procedure CreateWizardImage; var i: integer; begin //********* Batton ExtractTemporaryFile('next.png'); ExtractTemporaryFile('back.png'); ExtractTemporaryFile('bg.png'); ExtractTemporaryFile('browse.png'); ExtractTemporaryFile('checkbox.png'); ExtractTemporaryFile('close.png'); ExtractTemporaryFile('harddrive.png'); ExtractTemporaryFile('LogoButton.png'); //********* End Batton ExtractTemporaryFile('Check.wav'); //ExtractTemporaryFile('button.png'); end; //************************************************ ***************************************************// //************************************************ ***************************************************// procedure SetStateNewButtons; begin with WizardForm.BackButton do begin BtnSetText(hBackBtn,PAnsiChar(Caption)); BtnSetVisibility(hBackBtn,Visible); BtnSetEnabled(hBackBtn,Enabled); end; with WizardForm.NextButton do begin BtnSetText(hNextBtn,PAnsiChar(Caption)); BtnSetVisibility(hNextBtn,Visible); BtnSetEnabled(hNextBtn,Enabled); end; with WizardForm.CancelButton do begin BtnSetText(hCancelBtn,PAnsiChar(Caption)); BtnSetVisibility(hCancelBtn,Visible); BtnSetEnabled(hCancelBtn,Enabled); end; BtnSetText(hDirBrowseBtn,PAnsiChar(WizardForm.DirBrowseButton.Caption)); BtnSetText(hGroupBrowseBtn,PAnsiChar(WizardForm.GroupBrowseButton.Caption)); end; procedure WizardFormBtnClick(hBtn:HWND); var Btn:TButton; begin sndPlaySound(ExpandConstant('{tmp}\Click.wav'),$0001); case hBtn of hCancelBtn: Btn:=WizardForm.CancelButton; hNextBtn: Btn:=WizardForm.NextButton; hBackBtn: Btn:=WizardForm.BackButton; hDirBrowseBtn: Btn:=WizardForm.DirBrowseButton; hGroupBrowseBtn: Btn:=WizardForm.GroupBrowseButton; end; Btn.OnClick(Btn); SetStateNewButtons; BtnRefresh(hBtn); end; procedure WFBtnEnter(hBtn:HWND); begin sndPlaySound(ExpandConstant('{tmp}\WFEnter.wav'),$0001); end; procedure ButtonsTextures; begin WFButtonFont:=TFont.Create; WFButtonFont.Style:=[fsBold]; with WizardForm.BackButton do begin hBackBtn:=BtnCreate(WizardForm.Handle,Left+10,Top-5,Width-40,Height+10,ExpandConstant('{tmp}\back.png'),10,false); BtnSetEvent(hBackBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1)); BtnSetEvent(hBackBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1)); BtnSetFont(hBackBtn,WFButtonFont.Handle); //BtnSetFontColor(hBackBtn,$DAE369,$DAE369,$DAE369,$B6B6B6); BtnSetCursor(hBackBtn,GetSysCursorHandle(32649)); Width:=0; Height:=0; end; with WizardForm.NextButton do begin hNextBtn:=BtnCreate(WizardForm.Handle,Left-18,Top-5,Width-40,Height+10,ExpandConstant('{tmp}\next.png'),10,False); BtnSetEvent(hNextBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1)); BtnSetEvent(hNextBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1)); BtnSetFont(hNextBtn,WFButtonFont.Handle); //BtnSetFontColor(hNextBtn,$DAE369,$DAE369,$DAE369,$B6B6B6); BtnSetCursor(hNextBtn,GetSysCursorHandle(32649)); Width:=0; Height:=0; end; with WizardForm.CancelButton do begin hCancelBtn:=BtnCreate(WizardForm.Handle,Left-35,Top-5,Width-40,Height+10,ExpandConstant('{tmp}\close.png'),10,False); BtnSetEvent(hCancelBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1)); BtnSetEvent(hCancelBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1)); BtnSetFont(hCancelBtn,WFButtonFont.Handle); //BtnSetFontColor(hCancelBtn,$DAE369,$DAE369,$DAE369,$B6B6B6); BtnSetCursor(hCancelBtn,GetSysCursorHandle(32649)); Width:=0; Height:=0; end; with WizardForm.DirBrowseButton do begin hDirBrowseBtn:=BtnCreate(WizardForm.SelectDirPage.Handle,Left-8,Top-9,Width-40,Height+10,ExpandConstant('{tmp}\browse.png'),10,False); BtnSetEvent(hDirBrowseBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1)); BtnSetEvent(hDirBrowseBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1)); BtnSetFont(hDirBrowseBtn,WFButtonFont.Handle); //BtnSetFontColor(hDirBrowseBtn,$DAE369,$DAE369,$DAE369,$B6B6B6); BtnSetCursor(hDirBrowseBtn,GetSysCursorHandle(32649)); Width:=0; Height:=0; end; with WizardForm.GroupBrowseButton do begin hGroupBrowseBtn:=BtnCreate(WizardForm.SelectProgramGroupPage.Handle,Left-8,Top-9,Width-40,Height+10,ExpandConstant('{tmp}\browse.png'),10,False); BtnSetEvent(hGroupBrowseBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1)); BtnSetEvent(hGroupBrowseBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1)); BtnSetFont(hGroupBrowseBtn,WFButtonFont.Handle); //BtnSetFontColor(hGroupBrowseBtn,$DAE369,$DAE369,$DAE369,$B6B6B6); BtnSetCursor(hGroupBrowseBtn,GetSysCursorHandle(32649)); Width:=0; Height:=0; end; end; //************************************************ ////////***************************************************// //************* Лого ***************************** procedure LogoLabelOnClick(Sender: TObject); var ErrorCode: Integer; ReturnCode: Integer; begin ShellExec('open', 'http://ХЗ/', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode) end; //************ Лого ************ procedure LogoCreate; var MyButton: TButton; begin MyButton := TButton.Create(WizardForm); with MyButton do begin Left := 7; Top := 319; Width := 170; Height := 35; Caption := 'Как скрыть?'; Hint := 'Ïîñåòèòü forum.ru-board.com'; ShowHint := True; OnClick := @LogoLabelOnClick; Cursor := crHand; Parent := WizardForm; end; end; procedure InitializeWizard; begin CreateWizardImage; ButtonsTextures; LogoCreate; end; procedure CurPageChanged(CurPageID: Integer); begin SetStateNewButtons; end; procedure DeinitializeSetup; begin gdipShutdown; WFButtonFont.Free; end; |