Alex 17
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору ; -- Example1.iss -- ; Demonstrates copying 3 files and creating an icon. ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING .ISS SCRIPT FILES! [Setup] SetupIconFile=43.ico DiskSpanning=yes AppName=Splinter Cell Conviction AppVerName=Splinter Cell Conviction AppVersion=false AppCopyright=© Splinter Cell Conviction DefaultDirName={pf}\TMTGamer\Splinter Cell Conviction DefaultGroupName=Splinter Cell Conviction Compression=none SolidCompression=true WizardImageFile=49859-5079x3626.bmp WizardSmallImageFile=799.bmp UninstallDisplayIcon=43.ico OutputDir=E:\Gamer\Splinter Cell Conviction TMT\ OutputBaseFilename=setup VersionInfoVersion=1.04 VersionInfoCompany=Splinter Cell Conviction VersionInfoDescription=false ShowTasksTreeLines=true VersionInfoTextVersion=false [Languages] Name: RUS; MessagesFile: "compiler:Languages\Russian.isl" [Messages] WelcomeLabel1= WelcomeLabel2= ClickNext= ;Если текст не нужен то просто стереть.. [Tasks] Name: desktopicon; Description: Создать значок на Рабочем столе; GroupDescription: Дополнительные значки: Name: Redist; Description: Дополнительное программное обеспечение: Name: Redist\DirectXCheck; Description: Оновить Microsoft DirectX; Flags: unchecked Name: Redist\VCCheck; Description: Установить Microsoft Visual C++ Redist; Flags: unchecked [CustomMessages] RUS.FreeSpace=Доступно места на диске: RUS.NeedSpace=Требуется места на диске: [Types] Name: full; Description: Выборочная установка; Flags: iscustom [Components] Name: "Component1"; Description: "The Deniable Ops Insurgency Pack [DLC]"; Types: full; [Files] Source: BASS.dll; Flags: dontcopy Source: sound.mp3; Flags: dontcopy nocompression Source: MusicButton.bmp; Flags: dontcopy Source: button2.bmp; DestDir: {tmp}; Flags: dontcopy Source: papka.bmp; DestDir: {tmp}; Flags: dontcopy Source: "Logo.bmp"; DestDir: "{tmp}"; Flags: dontcopy Source: BitmapImage2.bmp; DestDir: {tmp}; Flags: dontcopy Source: "E:\Gamer\С.Т.А.Л.К.Е.Р. - Чисте Небо TMT\stkcs-ukr-patch-any.exe"; Components: Component1; DestDir: "{app}" [Dirs] Name: "{app}\data\"; Name: "{app}\data\Animations\"; Name: "{app}\data\AnimationsBundle\"; Name: "{app}\data\Localization\"; Name: "{app}\data\Localization\rus\"; Name: "{app}\data\Sounds\"; Name: "{app}\data\Sounds\PC\"; Name: "{app}\data\Sounds\PC\HDD\"; Name: "{app}\data\Sounds\PC\HDD\Packages\"; Name: "{app}\data\Sounds\PC\HDD\Packages\English\"; Name: "{app}\data\Videos\"; Name: "{app}\data\Videos\deu\"; Name: "{app}\data\Videos\int\"; Name: "{app}\src\"; Name: "{app}\src\system\"; Name: "{app}\src\system\resources"; Name: "{app}\src\system\UMDS\"; Name: "{app}\Support\"; Name: "{app}\Support\Manual\"; Name: "{app}\Support\ReadMe\"; [Run] Filename: {src}\Redist\DirectX\DXSETUP.exe; StatusMsg: Оновлення компонентів DirectX...; Tasks: Redist\DirectXCheck; Flags: waituntilterminated; Filename: "{src}\Redist\vcredist_x86_ru.exe"; StatusMsg: "Встановлення Microsoft Visual C++ Redist..."; Tasks: Redist\VCCheck; Flags: waituntilterminated; [Registry] Root: HKLM; Subkey: "SOFTWARE\Ubisoft\Splinter Cell - Conviction"; ValueName: "locversion"; ValueType: String; ValueData: "1"; Root: HKLM; Subkey: "SOFTWARE\Ubisoft\Splinter Cell - Conviction"; ValueName: "InstallDir"; ValueType: String; ValueData: "{app}"; Flags: uninsdeletevalue uninsdeletekeyifempty Root: HKLM; Subkey: "SOFTWARE\Ubisoft\Splinter Cell - Conviction"; ValueName: "version"; ValueType: String; ValueData: "1.02"; Flags: uninsdeletevalue uninsdeletekeyifempty Root: HKLM; Subkey: "SOFTWARE\Ubisoft\Splinter Cell - Conviction"; ValueName: "installed"; ValueType: String; ValueData: "TRUE"; Flags: uninsdeletevalue uninsdeletekeyifempty Root: HKLM; Subkey: "SOFTWARE\Ubisoft\Splinter Cell - Conviction\GameUpdate"; ValueName: "execPath"; ValueType: String; ValueData: "{app}\src\system\conviction_game.exe"; Flags: uninsdeletevalue uninsdeletekeyifempty Root: HKLM; Subkey: "SOFTWARE\Ubisoft\Splinter Cell - Conviction\GameUpdate"; ValueName: "installdir"; ValueType: String; ValueData: "{app}"; Flags: uninsdeletevalue uninsdeletekeyifempty Root: HKLM; Subkey: "SOFTWARE\Ubisoft\Splinter Cell - Conviction\GameUpdate"; ValueName: "language"; ValueType: String; ValueData: "us"; Flags: uninsdeletevalue uninsdeletekeyifempty Root: HKLM; Subkey: "SOFTWARE\Ubisoft\Splinter Cell - Conviction\GameUpdate"; ValueName: "info"; ValueType: String; ValueData: "d92fddaf05964670b4244138c85c7bdb"; Flags: uninsdeletevalue uninsdeletekeyifempty Root: HKLM; Subkey: "SOFTWARE\Ubisoft\Tom Clancy's Splinter Cell Conviction"; Flags: uninsdeletekeyifempty Root: HKLM; Subkey: "SOFTWARE\Ubisoft\Tom Clancy's Splinter Cell Conviction\1.00.000"; Flags: uninsdeletekeyifempty Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{6D8DDB4A-C263-40DE-BA16-AFDAD159D59A}"; ValueName: "ModifyPath"; ValueType: String; ValueData: "{uninstallexe}"; Flags: uninsdeletevalue uninsdeletekeyifempty Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{6D8DDB4A-C263-40DE-BA16-AFDAD159D59A}"; ValueName: "NoModify"; ValueType: Dword; ValueData: "$1"; Flags: uninsdeletevalue uninsdeletekeyifempty Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{6D8DDB4A-C263-40DE-BA16-AFDAD159D59A}"; ValueName: "NoRepair"; ValueType: Dword; ValueData: "$1"; Flags: uninsdeletevalue uninsdeletekeyifempty Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{6D8DDB4A-C263-40DE-BA16-AFDAD159D59A}"; ValueName: "UninstallString"; ValueType: String; ValueData: "{uninstallexe}"; Flags: uninsdeletevalue uninsdeletekeyifempty Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{6D8DDB4A-C263-40DE-BA16-AFDAD159D59A}"; ValueName: "InstallLocation"; ValueType: String; ValueData: "{app}"; Flags: uninsdeletevalue uninsdeletekeyifempty Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{6D8DDB4A-C263-40DE-BA16-AFDAD159D59A}"; ValueName: "ProductGuid"; ValueType: String; ValueData: "{{6D8DDB4A-C263-40DE-BA16-AFDAD159D59A}"; Flags: uninsdeletevalue uninsdeletekeyifempty Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{6D8DDB4A-C263-40DE-BA16-AFDAD159D59A}"; ValueName: "InstallSource"; ValueType: String; ValueData: "{src}\"; Flags: uninsdeletevalue uninsdeletekeyifempty Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{6D8DDB4A-C263-40DE-BA16-AFDAD159D59A}"; ValueName: "DisplayName"; ValueType: String; ValueData: "Tom Clancy's Splinter Cell Conviction"; Flags: uninsdeletevalue uninsdeletekeyifempty Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{6D8DDB4A-C263-40DE-BA16-AFDAD159D59A}"; ValueName: "Publisher"; ValueType: String; ValueData: "Ubisoft"; Flags: uninsdeletevalue uninsdeletekeyifempty Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{6D8DDB4A-C263-40DE-BA16-AFDAD159D59A}"; ValueName: "URLInfoAbout"; ValueType: String; ValueData: "http://www.ubi.com"; Flags: uninsdeletevalue uninsdeletekeyifempty Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{6D8DDB4A-C263-40DE-BA16-AFDAD159D59A}"; ValueName: "RegCompany"; ValueType: String; ValueData: "Microsoft"; Flags: uninsdeletevalue uninsdeletekeyifempty Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{6D8DDB4A-C263-40DE-BA16-AFDAD159D59A}"; ValueName: "RegOwner"; ValueType: String; ValueData: "Microsoft"; Flags: uninsdeletevalue uninsdeletekeyifempty Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{6D8DDB4A-C263-40DE-BA16-AFDAD159D59A}"; ValueName: "DisplayIcon"; ValueType: String; ValueData: "{app}\src\system\conviction_game.exe"; Flags: uninsdeletevalue uninsdeletekeyifempty Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{6D8DDB4A-C263-40DE-BA16-AFDAD159D59A}"; ValueName: "InstallDate"; ValueType: String; ValueData: "20100426"; Flags: uninsdeletevalue uninsdeletekeyifempty Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{6D8DDB4A-C263-40DE-BA16-AFDAD159D59A}"; ValueName: "DisplayVersion"; ValueType: String; ValueData: "1.04.000"; Flags: uninsdeletevalue uninsdeletekeyifempty Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{6D8DDB4A-C263-40DE-BA16-AFDAD159D59A}"; ValueName: "Version"; ValueType: Dword; ValueData: "$1000000"; Flags: uninsdeletevalue uninsdeletekeyifempty Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{6D8DDB4A-C263-40DE-BA16-AFDAD159D59A}"; ValueName: "MajorVersion"; ValueType: Dword; ValueData: "$1"; Flags: uninsdeletevalue uninsdeletekeyifempty Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{6D8DDB4A-C263-40DE-BA16-AFDAD159D59A}"; ValueName: "MinorVersion"; ValueType: Dword; ValueData: "$0"; Flags: uninsdeletevalue uninsdeletekeyifempty Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{6D8DDB4A-C263-40DE-BA16-AFDAD159D59A}"; ValueName: "LogMode"; ValueType: Dword; ValueData: "$1"; Flags: uninsdeletevalue uninsdeletekeyifempty [Icons] Name: "{group}\Splinter Cell Conviction "; Filename: "{app}\src\system\Conviction_game.exe"; WorkingDir: "{app}\src\system"; IconFilename: "{app}\src\system\Conviction_game.exe"; Name: "{commondesktop}\Splinter Cell Conviction "; Filename: "{app}\src\system\Conviction_game.exe"; WorkingDir: "{app}\src\system"; IconFilename: "{app}\src\system\Conviction_game.exe"; Tasks: "desktopicon"; [code] const ButtonWidth = 80; ButtonHeight = 23; BASS_ACTIVE_STOPPED = 0; BASS_ACTIVE_PLAYING = 1; BASS_ACTIVE_STALLED = 2; BASS_ACTIVE_PAUSED = 3; BASS_SAMPLE_LOOP = 4; var WelcomeLabel1, WelcomeLabel2, FinishedLabel, WizardLabel: TLabel; ButtonPanel: array of TPanel; ButtonImage: array of TBitmapImage; ButtonLabel: array of TLabel; UsedButtons: array of TButton; ButtonsCount: Integer; mp3Handle: HWND; mp3Name: String; PlayButton, PauseButton, StopButton: TPanel; PlayImage, PauseImage, StopImage: TBitmapImage; PlayLabel, PauseLabel, StopLabel: TLabel; MouseLabel: Tlabel; NeedSpaceLabel,FreeSpaceLabel: TLabel; FreeMB, TotalMB: Cardinal; SizeStr: String; SizeInt: Integer; SymbolNumber: Integer; AppPath: string; function BASS_Init(device: Integer; freq, flags: DWORD; win: hwnd; CLSID: Integer): Boolean; external 'BASS_Init@files:BASS.dll stdcall delayload'; function BASS_StreamCreateFile(mem: BOOL; f: PAnsiChar; offset: DWORD; length: DWORD; flags: DWORD): DWORD; external 'BASS_StreamCreateFile@files:BASS.dll stdcall delayload'; function BASS_Start(): Boolean; external 'BASS_Start@files:BASS.dll stdcall delayload'; function BASS_ChannelPlay(handle: DWORD; restart: BOOL): Boolean; external 'BASS_ChannelPlay@files:BASS.dll stdcall delayload'; function BASS_ChannelIsActive(handle: DWORD): Integer; external 'BASS_ChannelIsActive@files:BASS.dll stdcall delayload'; function BASS_ChannelPause(handle: DWORD): Boolean; external 'BASS_ChannelPause@files:BASS.dll stdcall delayload'; function BASS_Stop(): Boolean; external 'BASS_Stop@files:BASS.dll stdcall delayload'; function BASS_Pause(): Boolean; external 'BASS_Pause@files:BASS.dll stdcall delayload'; function BASS_Free(): Boolean; external 'BASS_Free@files:BASS.dll stdcall delayload'; procedure PlayMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin PlayImage.Left := -96 end; procedure PlayMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin PlayImage.Left := 0 end; procedure PlayMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if PlayImage.Left <> -96 then PlayImage.Left := -192 end; procedure PauseMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin PauseImage.Left := -128 end; procedure PauseMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin PauseImage.Left := -32 end; procedure PauseMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if PauseImage.Left <> -128 then PauseImage.Left := -224 end; procedure MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin PlayImage.Left := 0 PauseImage.Left := -32 end; procedure PlayButtonOnClick(Sender: TObject); begin case BASS_ChannelIsActive(mp3Handle) of BASS_ACTIVE_PAUSED: begin BASS_ChannelPlay(mp3Handle, False); PlayButton.Hide PauseButton.Show end; end; end; procedure PauseButtonOnClick(Sender: TObject); begin BASS_ChannelPause(mp3Handle); PauseButton.Hide PlayButton.Show end; procedure Music; begin ExtractTemporaryFile('MusicButton.bmp') MouseLabel := TLabel.Create(WizardForm) MouseLabel.Width := WizardForm.Width MouseLabel.Height := WizardForm.Height MouseLabel.Autosize := False MouseLabel.Transparent := True MouseLabel.OnMouseMove := @MouseMove MouseLabel.Parent := WizardForm PlayButton := TPanel.Create(WizardForm) PlayButton.Left := 465 PlayButton.Top := 64 PlayButton.Width := 23 PlayButton.Height := 23 PlayButton.Cursor := crHand PlayButton.ShowHint := True PlayButton.Hint := 'Воспроизвести музыку' PlayButton.OnClick := @PlayButtonOnClick PlayButton.Parent := WizardForm PlayImage := TBitmapImage.Create(WizardForm) PlayImage.Left := 0 PlayImage.Top := 0 PlayImage.Width := 288 PlayImage.Height := 23 PlayImage.Enabled := False PlayImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\MusicButton.bmp')) PlayImage.Parent := PlayButton // PlayImage.ReplaceColor:=$E2E2E2 PlayImage.ReplaceWithColor:=clBtnFace PlayLabel := TLabel.Create(WizardForm) PlayLabel.Width := PlayButton.Width PlayLabel.Height := PlayButton.Height PlayLabel.Autosize := False PlayLabel.Transparent := True PlayLabel.OnClick := @PlayButtonOnClick PlayLabel.OnMouseDown := @PlayMouseDown PlayLabel.OnMouseUp := @PlayMouseUp PlayLabel.OnMouseMove := @PlayMouseMove PlayLabel.Parent := PlayButton PauseButton := TPanel.Create(WizardForm) PauseButton.Left := 465 PauseButton.Top := 64 PauseButton.Width := 23 PauseButton.Height := 23 PauseButton.Cursor := crHand PauseButton.ShowHint := True PauseButton.Hint := 'Приостановить музыку' PauseButton.OnClick := @PauseButtonOnClick PauseButton.Parent := WizardForm PauseImage := TBitmapImage.Create(WizardForm) PauseImage.Left := -32 PauseImage.Top := 0 PauseImage.Width := 288 PauseImage.Height := 23 PauseImage.Enabled := False PauseImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\MusicButton.bmp')) PauseImage.Parent := PauseButton // PauseImage.ReplaceColor:=$E2E2E2 PauseImage.ReplaceWithColor:=clBtnFace PauseLabel := TLabel.Create(WizardForm) PauseLabel.Width := PauseButton.Width PauseLabel.Height := PauseButton.Height PauseLabel.Autosize := False PauseLabel.Transparent := True PauseLabel.OnClick := @PauseButtonOnClick PauseLabel.OnMouseDown := @PauseMouseDown PauseLabel.OnMouseUp := @PauseMouseUp PauseLabel.OnMouseMove := @PauseMouseMove PauseLabel.Parent := PauseButton 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; function GetSize(): Integer; begin SizeStr:= WizardForm.DiskSpaceLabel.Caption; for SymbolNumber:= 97 to 122 do begin while (Pos(Chr(SymbolNumber), SizeStr) > 0) do Delete(SizeStr, Pos(Chr(SymbolNumber), SizeStr),1); //Находим все символы нижнего регистра и удаляем while (Pos(AnsiUppercase(Chr(SymbolNumber)), SizeStr) > 0) do Delete(SizeStr, Pos(AnsiUppercase(Chr(SymbolNumber)), SizeStr),1); end; //Находим все символы верхнего регистра и удаляем for SymbolNumber:= 192 to 255 do begin while (Pos(Chr(SymbolNumber), SizeStr) > 0) do Delete(SizeStr, Pos(Chr(SymbolNumber), SizeStr),1); end; //Находим все символы нижнего регистра и удаляем while (Pos('.', SizeStr) > 0) do Delete(SizeStr, Pos('.', SizeStr), 1); //Удаляем точки Delete(SizeStr, Pos(',', SizeStr), 5) //Удаляем дробную часть Result:= StrToInt(Trim(SizeStr)); //Переводим в число end; function CompareNum(FirstNum, SecondNum: Integer): Boolean; begin if FirstNum < SecondNum then Result:= False else Result:= True; end; Function MbOrTb(Byte: Extended): String; begin if Byte < 1024 then Result:= NumToStr(Byte) + ' Мб' else if Byte/1024 < 1024 then Result:= NumToStr(round(Byte/1024*100)/100) + ' Гб' else Result:= NumToStr(round((Byte/(1024*1024))*100)/100) + ' Тб' end; procedure GetFreeSpaceCaption(Sender: TObject); var Path: String; begin Path := ExtractFileDrive(WizardForm.DirEdit.Text); GetSpaceOnDisk(Path, True, FreeMB, TotalMB); FreeSpaceLabel.Caption:= ExpandConstant('{cm:FreeSpace} ') + MbOrTb(FreeMB) NeedSpaceLabel.Caption := ExpandConstant('{cm:NeedSpace} ') + MbOrTb(SizeInt) if WizardForm.CurPageID = wpSelectDir then begin WizardForm.NextButton.Enabled:= CompareNum(FreeMB, SizeInt) end; end; procedure InitializeWizard8(); begin WizardForm.DiskSpaceLabel.Hide; #ifdef NeedSize SizeInt:= {#NeedSize} #else SizeInt:= GetSize; #endif NeedSpaceLabel := TLabel.Create(WizardForm); NeedSpaceLabel.SetBounds(ScaleX(0), ScaleY(198), ScaleX(209), ScaleY(13)) NeedSpaceLabel.Parent := WizardForm.SelectDirPage; NeedSpaceLabel.Transparent:=true; FreeSpaceLabel := TLabel.Create(WizardForm); FreeSpaceLabel.SetBounds(ScaleX(0), ScaleY(216), ScaleX(209), ScaleY(13)) FreeSpaceLabel.Parent := WizardForm.SelectDirPage; FreeSpaceLabel.Transparent:=true; WizardForm.DirEdit.OnChange:= @GetFreeSpaceCaption; WizardForm.DirEdit.Text:= WizardForm.DirEdit.Text + #0; end; function InitializeSetup1(): Boolean; begin ExtractTemporaryFile('BASS.dll'); ExtractTemporaryFile('sound.mp3'); mp3Name := ExpandConstant('{tmp}\sound.mp3'); BASS_Init(-1, 44100, 0, 0, 0); mp3Handle := BASS_StreamCreateFile(FALSE, PAnsiChar(mp3Name), 0, 0, BASS_SAMPLE_LOOP); BASS_Start(); BASS_ChannelPlay(mp3Handle, False); Result := True; end; procedure DeinitializeSetup1(); begin BASS_Stop(); BASS_Free(); end; /////----------------------------------------------------- конец музыка в сетапе procedure InitializeWizard7(); begin Music; end; function InitializeSetup(): Boolean; begin Result := InitializeSetup1(); if not Result then exit; end; procedure DeinitializeSetup(); begin DeinitializeSetup1(); end; //procedure CurPageChanged(CurPageID: Integer); //begin // CurPageChanged1(CurPageID); // CurPageChanged2(CurPageID); //end; procedure ButtonLabelClick(Sender: TObject); var Button: TButton; n, i: Integer; begin i:= TLabel(Sender).Tag; ButtonImage[i].Left:= 0 for n:=0 to (ButtonsCount-1) do begin if i = n then Button:= UsedButtons[n]; end; Button.OnClick(Button) end; procedure ButtonLabelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if ButtonLabel[TLabel(Sender).Tag].Enabled then ButtonImage[TLabel(Sender).Tag].Left:=-ButtonWidth*2 end; procedure ButtonLabelMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if ButtonLabel[TLabel(Sender).Tag].Enabled then ButtonImage[TLabel(Sender).Tag].Left:=0 end; procedure ButtonLabelMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var n, I: Integer; begin I:=TLabel(Sender).Tag; //Сначала восстанавливаем картинку у всех кнопок, так надо иначе могут быть глюки for n:=0 to (ButtonsCount-1) do begin if (ButtonLabel[n].Enabled)and(ButtonImage[n].Left <> -ButtonWidth*2)and(I<>N) then ButtonImage[n].Left:= 0; end; //Теперь собственно ставим нужную картинку if (ButtonLabel[I].Enabled)and(ButtonImage[I].Left <> -ButtonWidth*2) then begin ButtonImage[I].Left:= -ButtonWidth; end; end; procedure WizardLabelMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var n: Integer; begin //Т.к Sender'ом выступает WizardLabel то не получится испльзовать индекс кнопки for n:=0 to (ButtonsCount-1) do if (ButtonLabel[n].Enabled)and(ButtonImage[n].Left <> -ButtonWidth*2) then begin ButtonImage[n].Left:= 0; end; end; procedure LoadButtonImage(AButton: TButton); var n: Integer; begin n:=ButtonsCount; SetArrayLength(ButtonPanel, n+1); SetArrayLength(ButtonImage, n+1); SetArrayLength(ButtonLabel, n+1); SetArrayLength(UsedButtons, n+1); UsedButtons[n]:= AButton; ButtonPanel[n]:=TPanel.Create(WizardForm) ButtonPanel[n].SetBounds(AButton.Left, AButton.Top, AButton.Width, AButton.Height) ButtonPanel[n].Tag:= n ButtonPanel[n].Enabled:= AButton.Enabled ButtonPanel[n].Parent:=AButton.Parent ButtonImage[n]:=TBitmapImage.Create(WizardForm) ButtonImage[n].SetBounds(ScaleX(0), ScaleY(0), ScaleX(320), ScaleY(23)) ButtonImage[n].Enabled:=False ButtonImage[n].Bitmap.LoadFromFile(ExpandConstant('{tmp}\Button2.bmp')) ButtonImage[n].Parent:=ButtonPanel[n] with TLabel.Create(WizardForm) do begin Tag:=n Parent:=ButtonPanel[n] Width:=AButton.Width Height:=AButton.Height Transparent:=True OnClick:=@ButtonLabelClick OnDblClick:=@ButtonLabelClick OnMouseMove:=@ButtonLabelMove OnMouseDown:=@ButtonLabelMouseDown OnMouseUp:=@ButtonLabelMouseUp end ; ButtonLabel[n]:=TLabel.Create(WizardForm) ButtonLabel[n].Autosize:=True ButtonLabel[n].Alignment:=taCenter ButtonLabel[n].Tag:=n ButtonLabel[n].Enabled:= AButton.Enabled ButtonLabel[n].Transparent:=True ButtonLabel[n].Font.Color:=clWhite ButtonLabel[n].Caption:=AButton.Caption ButtonLabel[n].OnClick:=@ButtonLabelClick ButtonLabel[n].OnDblClick:=@ButtonLabelClick ButtonLabel[n].OnMouseMove:=@ButtonLabelMove ButtonLabel[n].OnMouseDown:=@ButtonLabelMouseDown ButtonLabel[n].OnMouseUp:=@ButtonLabelMouseUp ButtonLabel[n].Parent:=ButtonPanel[n] ButtonsCount:= ButtonsCount+1 end; procedure UpdateButtons(); var n: Integer; begin for n:=0 to ButtonsCount-1 do begin ButtonLabel[n].Caption:=UsedButtons[n].Caption ButtonPanel[n].Visible:=UsedButtons[n].Visible if (UsedButtons[n].Enabled = False) then ButtonImage[n].Left:= -ButtonWidth*3 else ButtonImage[n].Left:= 0; ButtonLabel[n].Enabled:= UsedButtons[n].Enabled; ButtonPanel[n].Enabled:= UsedButtons[n].Enabled; //Ставим Left и Top лейбла соразмерно размеру лейбла ButtonLabel[n].Left:= ButtonPanel[n].Width div 2 - ButtonLabel[n].Width div 2; ButtonLabel[n].Top:= ButtonPanel[n].Height div 2 - ButtonLabel[n].Height div 2; end; end; procedure LicenceAcceptedRadioOnClick(Sender: TObject); begin //Делаем кнопку активной WizardForm.NextButton.Enabled:= True; //Обновляем текстурированную кнопку (обновляем активность и текстуру) UpdateButtons(); end; procedure LicenceNotAcceptedRadioOnClick(Sender: TObject); begin //Делаем кнопку неактивной WizardForm.NextButton.Enabled:= False; //Обновляем текстурированную кнопку (обновляем активность и текстуру) UpdateButtons() end; procedure InitializeWizard1(); begin WizardForm.PageNameLabel.Font.Color:= clWhite; WizardLabel:= TLabel.Create(WizardForm) WizardLabel.SetBounds(ScaleX(0), ScaleY(0), ScaleX(WizardForm.Width), ScaleY(WizardForm.Height)) WizardLabel.Transparent:= True; WizardLabel.AutoSize:=false; WizardLabel.OnMouseMove:=@WizardLabelMove WizardLabel.Parent:= WizardForm; WizardForm.PageDescriptionLabel.Hide; WizardForm.BackButton.Width:= ButtonWidth WizardForm.BackButton.Height:= ButtonHeight WizardForm.NextButton.Width:= ButtonWidth WizardForm.NextButton.Height:= ButtonHeight WizardForm.CancelButton.Width:=ButtonWidth WizardForm.CancelButton.Height:= ButtonHeight WizardForm.DirBrowseButton.Left:=ScaleX(337) WizardForm.DirBrowseButton.Width:= ButtonWidth WizardForm.DirBrowseButton.Height:=ButtonHeight WizardForm.GroupBrowseButton.Left:=ScaleX(337) WizardForm.GroupBrowseButton.Width:= ButtonWidth WizardForm.GroupBrowseButton.Height:=ButtonHeight WizardForm.LicenseAcceptedRadio.OnClick:=@LicenceAcceptedRadioOnClick WizardForm.LicenseNotAcceptedRadio.OnClick:=@LicenceNotAcceptedRadioOnClick ExtractTemporaryFile('button2.bmp') LoadButtonImage(WizardForm.BackButton) LoadButtonImage(WizardForm.NextButton) LoadButtonImage(WizardForm.CancelButton) LoadButtonImage(WizardForm.DirBrowseButton) LoadButtonImage(WizardForm.GroupBrowseButton) end; procedure CurPageChanged(CurPageID: Integer); begin if CurPageID = wpSelectDir then begin GetFreeSpaceCaption(nil) end; Begin Case CurPageID of wpWelcome: begin PlayButton.Hide; PauseButton.Hide; end; wpSelectDir: begin if BASS_ChannelIsActive(mp3Handle) = BASS_ACTIVE_PAUSED then PlayButton.Show else PauseButton.Show; end; wpFinished: begin PlayButton.Hide; PauseButton.Hide; end; end; begin UpdateButtons() end; end; end; /////////img/////// procedure InitializeWizard2(); begin WizardForm.WizardBitmapImage.Width:= ScaleX(497); WizardForm.WizardBitmapImage2.Width:= ScaleX(497); WelcomeLabel1:= TLabel.Create(WizardForm); WelcomeLabel1.AutoSize:= False; with WizardForm.WelcomeLabel1 do WelcomeLabel1.SetBounds(Left, Top, Width, Height); WelcomeLabel1.Font:= WizardForm.WelcomeLabel1.Font WelcomeLabel1.Font.Color:= clWhite; WelcomeLabel1.Transparent:= True; WelcomeLabel1.WordWrap:= true; WelcomeLabel1.Caption:= WizardForm.WelcomeLabel1.Caption; WelcomeLabel1.Parent:= WizardForm.WelcomePage WelcomeLabel2:= TLabel.Create(WizardForm); WelcomeLabel2.AutoSize:= False; with WizardForm.WelcomeLabel2 do WelcomeLabel2.SetBounds(Left, Top, Width, Height); WelcomeLabel2.Font:= WizardForm.WelcomeLabel2.Font WelcomeLabel2.Font.Color:= clWhite; WelcomeLabel2.Transparent:= True; WelcomeLabel2.WordWrap:= true; WelcomeLabel2.Caption:= WizardForm.WelcomeLabel2.Caption; WelcomeLabel2.Parent:= WizardForm.WelcomePage WizardForm.WizardSmallBitmapImage.SetBounds(ScaleX(0), ScaleY(0), WizardForm.MainPanel.Width, WizardForm.MainPanel.Height); WizardForm.WelcomeLabel1.Hide; WizardForm.WelcomeLabel2.Hide; WizardForm.SelectTasksLabel.Hide; WizardForm.FinishedLabel.Hide; WizardForm.FinishedHeadingLabel.Hide; end; ////////////// const Color = clblack; procedure InitializeWizard3(); begin WizardForm.Font.Color:=clWhite; WizardForm.Color:=Color; WizardForm.WelcomePage.Color:=Color; WizardForm.InnerPage.Color:=Color; WizardForm.FinishedPage.Color:=Color; WizardForm.LicensePage.Color:=Color; WizardForm.PasswordPage.Color:=Color; WizardForm.InfoBeforePage.Color:=Color; WizardForm.UserInfoPage.Color:=Color; WizardForm.SelectDirPage.Color:=Color; WizardForm.SelectComponentsPage.Color:=Color; WizardForm.SelectProgramGroupPage.Color:=Color; WizardForm.SelectTasksPage.Color:=Color; WizardForm.ReadyPage.Color:=Color; WizardForm.PreparingPage.Color:=Color; WizardForm.InstallingPage.Color:=Color; WizardForm.InfoAfterPage.Color:=Color; WizardForm.DirEdit.Color:=Color; WizardForm.DiskSpaceLabel.Color:=Color; WizardForm.DirEdit.Color:=Color; WizardForm.GroupEdit.Color:=Color; WizardForm.PasswordLabel.Color:=Color; WizardForm.PasswordEdit.Color:=Color; WizardForm.PasswordEditLabel.Color:=Color; WizardForm.ReadyMemo.Color:=Color; WizardForm.TypesCombo.Color:=Color; WizardForm.WelcomeLabel1.Color:=Color; WizardForm.InfoBeforeClickLabel.Color:=Color; WizardForm.MainPanel.Color:=Color; WizardForm.PageDescriptionLabel.Color:=Color; WizardForm.ReadyLabel.Color:=Color; WizardForm.YesRadio.Color:=Color; WizardForm.NoRadio.Color:=Color; WizardForm.WelcomeLabel2.Color:=Color; WizardForm.LicenseLabel1.Color:=Color; WizardForm.InfoAfterClickLabel.Color:=Color; WizardForm.ComponentsList.Color:=Color; WizardForm.ComponentsDiskSpaceLabel.Color:=Color; WizardForm.BeveledLabel.Color:=Color; WizardForm.StatusLabel.Color:=Color; WizardForm.FilenameLabel.Color:=Color; WizardForm.SelectDirLabel.Color:=Color; WizardForm.SelectStartMenuFolderLabel.Color:=Color; WizardForm.SelectComponentsLabel.Color:=Color; WizardForm.SelectTasksLabel.Color:=Color; WizardForm.LicenseAcceptedRadio.Color:=Color; WizardForm.LicenseNotAcceptedRadio.Color:=Color; WizardForm.UserInfoNameLabel.Color:=Color; WizardForm.UserInfoNameEdit.Color:=Color; WizardForm.UserInfoOrgLabel.Color:=Color; WizardForm.UserInfoOrgEdit.Color:=Color; WizardForm.PreparingLabel.Color:=Color; WizardForm.UserInfoSerialLabel.Color:=Color; WizardForm.UserInfoSerialEdit.Color:=Color; WizardForm.TasksList.Color:=Color; WizardForm.RunList.Color:=Color; WizardForm.SelectDirBrowseLabel.Color:=Color; WizardForm.SelectStartMenuFolderBrowseLabel.Color:=Color; end; /////// var LogoImage:TBitmapImage; LogoLabel: TLabel; procedure LogoOnClick(Sender: TObject); var ReturnCode: Integer; begin ShellExec('open', '//http://tapochek.net/', '', '', SW_SHOWNORMAL, ewNoWait, ReturnCode) end; procedure InitializeWizard5(); var LogoPanel : TPanel; begin ExtractTemporaryFile('logo.bmp'); LogoPanel := TPanel.Create(WizardForm); with LogoPanel do begin Parent := WizardForm; Left := ScaleX(5); Top := ScaleY(320); Width := ScaleX(165); Height := ScaleY(35); BevelOuter := bvNone; end; LogoImage := TBitmapImage.Create(WizardForm); with LogoImage do begin Parent := LogoPanel; Left := ScaleX(0); Top := ScaleY(0); AutoSize:=true; ReplaceColor:=clFuchsia; ReplaceWithColor:=clBtnFace; Bitmap.LoadFromFile(ExpandConstant('{tmp}\logo.bmp')); end; LogoLabel := TLabel.Create(WizardForm); with LogoLabel do begin Parent := LogoPanel; Width := LogoPanel.Width; Height := LogoPanel.Height; Transparent:=True; Cursor := crHand; OnClick:=@LogoOnClick; end; end; /// procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean); begin Confirm:=False; end; procedure InitializeWizard4(); begin ExtractTemporaryFile('papka.bmp'); WizardForm.SelectDirBitmapImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\papka.bmp')); WizardForm.SelectDirBitmapImage.AutoSize:=true; WizardForm.SelectGroupBitmapImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\papka.bmp')); WizardForm.SelectGroupBitmapImage.AutoSize:=true; end; procedure InitializeWizard6(); var b:string; begin ExtractTemporaryFile('BitmapImage2.bmp') b:=ExpandConstant('{tmp}\BitmapImage2.bmp') with WizardForm do begin WizardBitmapImage.Width:=WizardForm.ClientWidth; WelcomeLabel1.Visible:=False; WelcomeLabel2.Visible:=False; WizardBitmapImage2.Bitmap.LoadFromFile(b); WizardBitmapImage2.Width:=WizardForm.ClientWidth; FinishedLabel.Visible:=False; FinishedHeadingLabel.Visible:=False; end; end; /// procedure InitializeWizard(); begin InitializeWizard1(); InitializeWizard2(); InitializeWizard3(); InitializeWizard4(); InitializeWizard6(); InitializeWizard7(); InitializeWizard8(); // InitializeWizard5(); end; | Всего записей: 231 | Зарегистр. 11-09-2010 | Отправлено: 00:37 25-04-2011 | Исправлено: Alex 17, 00:47 25-04-2011 |
|