san4o
-
Posts
13 -
Joined
-
Last visited
Posts posted by san4o
-
-
leeuniverse,
нужно просто выровнять страницы.
прогрессбар закрепить на нужной странице и всё.
В лиц. станице баг из-за текстуированных кнопок. Закомментил, но звуки клика оставил.
Вобщем вот твой код.
/////////////////////////////////////////////////////////////////////////////////// // Script for World of Tanks from San4oPack 2014 // // A simple form of music, backup files (recovery after uninstalling) // // with pictures, etc. // /////////////////////////////////////////////////////////////////////////////////// ; At each update patch game, change only the numbers ( eg: #define Patch "0.9.2" #define Patch "0.9.3" etc.) #define Patch "0.9.3" ; Skins are located in the Styles folder. If you want to change the skin, change only the name (for example: #define SkinName "skin.cjstyles" or #define SkinName "VistaAero.cjstyles" ) #define SkinName "CharcoalDarkSlate.vsf" ; Backup module, do not touch! To backup individual files must be the flag BeforeInstall: CreateBackup (example in this script, see: Source: "Mods\Grafika\Norm\preferences.xml"; DestDir: "{userappdata}/Wargaming.net/WorldOfTanks"; Flags: ignoreversion; BeforeInstall: CreateBackup; Tasks: grafika; ) #include "Modules\SHFileOperation.iss" [Setup] ; Dont put a "'" in any of these. AppName=[LAMP] Lees ALL MOD Pack AppVersion=0.9.3.v4 AppCopyright=Copyright (C)2014 LAMP VersionInfoVersion=0.9.3 DefaultDirName={code:GetAppDir} DirExistsWarning=no ;ShowComponentSizes=no WizardSmallImageFile=MyFiles\WizardSmallImage.bmp DefaultGroupName=LAMP DisableProgramGroupPage=yes InfoBeforeFile=faq.rtf LicenseFile=license.rtf InfoAfterFile=credit.rtf ;AllowNoIcons=True SetupIconFile=MyFiles\Wot.ico OutputBaseFilename=LAMP_0.9.3.v4 Compression=lzma2/ultra64 InternalCompressLevel=ultra SolidCompression=yes ; Comment the following line to disable the "Select Setup Language" ; dialog and have it rely solely on auto-detection. ShowLanguageDialog=Yes ; If you want all languages to be listed in the "Select Setup Language" ; dialog, even those that can't be displayed in the active code page, ; uncomment the following line. Note: Unicode Inno Setup always displays ; all languages. ShowUndisplayableLanguages=yes [Languages] Name: en; MessagesFile: "compiler:Default.isl" Name: nl; MessagesFile: "compiler:Languages\Dutch.isl" Name: de; MessagesFile: "compiler:Languages\German.isl" Name: ru; MessagesFile: "compiler:Languages\Russian.isl" [Types] Name: "full"; Description: "Full" Name: "custom"; Description: "Custom"; Flags: iscustom [Components] Name: XVM; Description: XVM; Types: full custom; Flags: disablenouninstallwarning checkablealone dontinheritcheck Name: xvm\pref; Description: Prime_eff; Flags: exclusive disablenouninstallwarning Name: pricel; Description: Sights; Types: full custom; Flags: disablenouninstallwarning checkablealone dontinheritcheck Name: pricel\jmb; Description: J1mbo; Types: full; Flags: exclusive disablenouninstallwarning Name: pricel\zyz; Description: Zayaz; Flags: exclusive disablenouninstallwarning Name: pricel\20; Description: Spectr20; Flags: exclusive disablenouninstallwarning Name: chat; Description: Text Chat; Types: full custom; Flags: disablenouninstallwarning checkablealone dontinheritcheck Name: chat\pod; Description: Advanced Tips; Types: full; Flags: disablenouninstallwarning Name: chat\mcm; Description: Maud colored posts; Types: full; Flags: disablenouninstallwarning Name: angar; Description: Hangar Mods; Types: full custom; Flags: disablenouninstallwarning checkablealone dontinheritcheck Name: angar\mn; Description: Hangar Minimalistic; Types: full; Flags: disablenouninstallwarning exclusive Name: zvonok; Description: Sound Mods; Types: full custom; Flags: disablenouninstallwarning checkablealone dontinheritcheck Name: zvonok\zk; Description: 6 voice feelings fire; Types: full; Flags: disablenouninstallwarning [Icons] Name: "{group}\{cm:UninstallProgram,{#SetupSetting("AppName")}}"; Filename: "{uninstallexe}"; IconFilename: "{app}\uninstall.ico"; Comment: "Remove {#SetupSetting("AppName")} from your computer"; [Tasks] Name: "grafika"; Description: "Graphics settings (average PC)"; GroupDescription: "Settings:"; Flags: checkedonce Name: "fps"; Description: Disable the smoke and flames when fired; GroupDescription: "Performance:"; Flags: checkedonce Name: "fps2"; Description: Disable the smoke from the exhaust pipe; GroupDescription: "Performance:"; Flags: checkedonce Name: "fps3"; Description: Disable the smoke from the tanks destroyed; GroupDescription: "Performance:"; Flags: checkedonce Name: "fps4"; Description: Disable the effect of explosions and shells; GroupDescription: "Performance:"; Flags: unchecked Name: "fps5"; Description: Disable the effect of motion of the trees; GroupDescription: "Performance:"; Flags: checkedonce Name: "fps6"; Description: Disable the effect of contact with objects; GroupDescription: "Performance:"; Flags: unchecked Name: "fps7"; Description: Disable the effect of falling into the tank; GroupDescription: "Performance:"; Flags: unchecked Name: "fps8"; Description: Disable the effect of destruction of the tank; GroupDescription: "Performance:"; Flags: checkedonce Name: "fps9"; Description: Disable effects of destruction of objects; GroupDescription: "Performance:"; Flags: checkedonce [Files] Source: "dll\*"; DestDir: "{app}"; Flags: ignoreversion solidbreak; BeforeInstall: ChangeCaption('Copying files...wait..'); Attribs: hidden system; Source: "MyFiles\*"; DestDir: "{app}"; Flags: ignoreversion dontcopy; Attribs: hidden system; Source: "Styles\{#SkinName}"; DestDir: "{app}"; Flags: ignoreversion; Attribs: hidden system; Source: "image\*"; Flags: dontcopy noencryption; ;Source: {app}\Backup\xvm\db\tokens.xdb; DestDir: {app}\res_mods\xvm\db; Flags: skipifsourcedoesntexist external; ;Source: "Mods\Grafika\Norm\preferences.xml"; DestDir: "{userappdata}/Wargaming.net/WorldOfTanks"; Flags: ignoreversion; BeforeInstall: CreateBackup; Tasks: grafika; ;Source: "Mods\wot\fps\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Tasks: fps; ;Source: "Mods\wot\fps2\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Tasks: fps2; ;Source: "Mods\wot\fps3\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Tasks: fps3; ;Source: "Mods\wot\fps4\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Tasks: fps4; ;Source: "Mods\wot\fps5\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Tasks: fps5; ;Source: "Mods\wot\fps6\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Tasks: fps6; ;Source: "Mods\wot\fps7\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Tasks: fps7; ;Source: "Mods\wot\fps8\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Tasks: fps8; ;Source: "Mods\wot\fps9\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Tasks: fps9; ; ;//============== MODS =======================================\\ ;Source: "Mods\xvm\Prime_eff\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: xvm\pref; ;Source: "Mods\pricel\JIMBO\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: pricel\jmb; ;Source: "Mods\pricel\zayaz\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: pricel\zyz; ;Source: "Mods\pricel\Spectr20\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: pricel\20; ;//=== the beginning of text mode =======================================================================================================================\\ ;Source: "{app}\res\text\*"; DestDir: "{app}\res_mods\{#Patch}\text\"; Flags: external recursesubdirs skipifsourcedoesntexist; Components: chat; ;Source: "Mods\chat\podskaz\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: chat\pod; ;Source: "Mods\chat\mcm\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: chat\mcm; ;//=== end of text mode ===// ;Source: "Mods\angar\garage\mini\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: angar\mn; ;//=== the beginning of the audio files ===============================================================================================================================\\ ;Source: "{app}\res\audio\*"; DestDir: "{app}\res_mods\{#Patch}\audio\"; Flags: external recursesubdirs skipifsourcedoesntexist; Components: zvonok; ;Source: "Mods\zvonok\zvuki\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: zvonok\zk; ;//=== end of the audio files ===// [code] const BColor = clBlue; EColor = clblack; BM_CLICK=$00F5; type TBtnEventProc = procedure (h:HWND); TImgPB = record Left, Top, Width, Height, MaxWidth : integer; img1,img2 : Longint; end; var InfoPanel: TPanel; LogoLabel: TLabel; PBCount, ResultCode, LastIndex, CurrentImage, ProgressStep,LastIndex,ErrorCode,X,Y,i,n: Integer; Rus: boolean; GIFHWND2, MusicButton, hCancelBtn, hNextBtn, hBackBtn, hDirBrowseBtn, hGroupBrowseBtn, hCancelUninstBtn: HWND; WFButtonFont, UPFButtonFont: TFont; UndefPic, GifFileName, OldDisk, TimeLeft, TempPath: string; Workspace, DirFolder, GroupFolder, WizardImg, MyLogo: Longint; InfoCaption, Info, Lbl: TNewStaticText; InfoPic: TBitmapImage; CheckLicense: TCheckBox; const HALIGN_CENTER = 0; HALIGN_LEFT = 1; HALIGN_RIGHT = 2; VALIGN_CENTER = 0; VALIGN_TOP = 1; VALIGN_BOTTOM = 2; FIT_NONE = 0; FIT_WIDTH = 1; FIT_HEIGHT = 2; FIT_BOTH = 3; CLR_INVALID = $FFFFFFFF; UNDEF_INDEX = -777; BtnClickEventID = 1; BtnMouseEnterEventID = 2; #include "Modules\MDL.iss" //#include "Modules\Button.iss" #include "Modules\bass.iss" #include "Modules\TextureProgressBar.iss" procedure LicenseOnClick(Sender: TObject); begin if (CheckLicense.Checked) = True then begin WizardForm.LicenseAcceptedRadio.Checked := True; end else begin WizardForm.LicenseNotAcceptedRadio.Checked := True; end; end; procedure ShowPicHint(const PicFilePath: String); var pt: TPoint; begin if not GetCursorPos(pt) then Exit; InfoPic.Bitmap.LoadFromFile(PicFilePath); InfoPic.SetBounds(ScaleX(300), ScaleY(10), 310, 280); InfoPic.Show; end; procedure CompOnItemMouseMove(Sender: TObject; X, Y: Integer; Index: Integer; Area: TItemArea); begin if Index = -1 then Exit; if Index = LastIndex then Exit; try case TNewCheckListBox(Sender).ItemCaption[Index] of 'XVM': UndefPic := '2.bmp'; 'Prime_eff': UndefPic := '4.bmp'; 'J1mbo': UndefPic := '12.bmp'; 'Zayaz': UndefPic := '13.bmp'; 'Advanced tips': UndefPic := '30.bmp'; 'Maud colored posts': UndefPic := '31.bmp'; 'hangar Minimalistic': UndefPic := '34.bmp'; '6 Ozvuchka feelings fire': UndefPic := '53.bmp'; 'Spectr20': UndefPic := '62.bmp'; else begin LastIndex := UNDEF_INDEX; InfoPic.Hide; Exit; end; end; if not FileExists(TempPath + UndefPic) then ExtractTemporaryFile(UndefPic); ShowPicHint(TempPath + UndefPic); finally LastIndex := Index; end; end; procedure CompOnMouseLeave(Sender: TObject); begin InfoPic.Hide; LastIndex := -1; end; procedure InitInfo(); begin WizardForm.TypesCombo.Hide; WizardForm.ComponentsList.OnItemMouseMove := @CompOnItemMouseMove; WizardForm.ComponentsList.OnMouseLeave := @CompOnMouseLeave; TempPath := AddBackslash(ExpandConstant('{tmp}')); LastIndex := UNDEF_INDEX; InfoPic := TBitmapImage.Create(WizardForm) with InfoPic do begin Parent := WizardForm.SelectComponentsPage; AutoSize := true; end; end; function GetAppDir(Path: String): String; begin if RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{1EAC1D02-C6AC-4FA6-9A44-96258C37C812RU}_is1') then begin RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{1EAC1D02-C6AC-4FA6-9A44-96258C37C812RU}_is1', 'InstallLocation', Path); Result := Path end else Result := ExpandConstant('C:\Games\World_of_Tanks') end; // hint ------------- procedure HintStr(Sender: TObject; X: Integer; Y: Integer; Index: Integer; Area: TItemArea); begin if Index<>LastIndex then begin LastIndex:= Index; WizardForm.TasksList.ShowHint:= False; WizardForm.TasksList.Hint:= ''; Exit; end; with WizardForm.TasksList do case Index of 0 : Hint := ''; 1 : Hint := 'Optimal graphics settings for the average PC'; 2 : Hint := ''; 3 : Hint := 'Increasing FPS by disabling certain Perm. effects have a negative impact on system performance'; 4 : Hint := ''; 5 : Hint := ''; 6 : Hint := ''; else Hint := ''; end; WizardForm.TasksList.ShowHint:= True; end; // hint ------------- procedure PlaySoundOnEnter(Sender: TObject); begin sndPlaySound(ExpandConstant('{tmp}\Check.WAV'),$0001); end; procedure PlaySoundOnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin sndPlaySound(ExpandConstant('{tmp}\Click.WAV'),$0001); end; procedure PlaySoundOnMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin sndPlaySound(ExpandConstant('{tmp}\WFEnter.WAV'),$0001); end; procedure ChangeCaption(str: string); begin WizardForm.StatusLabel.Caption:= str; end; procedure CreateBackup; var srcFile, destFile: string; begin srcFile:= ExpandConstant(CurrentFileName); destFile:= srcFile + '.bak'; DeleteFile(destFile); RenameFile(srcFile, destFile); end; procedure RestoreBackup(backupDir: string); var srcFile, destFile: string; FSR, DSR: TFindRec; FindResult: Boolean; APath: string; begin APath := AddBackslash(backupDir); FindResult := FindFirst(APath + '*.bak', FSR); try while FindResult do begin if FSR.Attributes and FILE_ATTRIBUTE_DIRECTORY = 0 then begin srcFile:= APath + FSR.Name; destFile:= Copy(srcFile, 0, Length(srcFile)-4); DeleteFile(destFile); RenameFile(srcFile, destFile); end; FindResult := FindNext(FSR); end; FindResult := FindFirst(APath + '*.*', DSR); while FindResult do begin if ((DSR.Attributes and FILE_ATTRIBUTE_DIRECTORY) = FILE_ATTRIBUTE_DIRECTORY) and not ((DSR.Name = '.') or (DSR.Name = '..')) then {Recursion} RestoreBackup(APath + DSR.Name); FindResult := FindNext(DSR); end; finally FindClose(FSR); FindClose(DSR); end; end; // Import the LoadVCLStyle function from VclStylesInno.DLL procedure LoadVCLStyle(VClStyleFile: String); external 'LoadVCLStyleA@files:VclStylesInno.dll stdcall'; // Import the UnLoadVCLStyles function from VclStylesInno.DLL procedure UnLoadVCLStyles; external 'UnLoadVCLStyles@files:VclStylesInno.dll stdcall'; function InitializeSetup(): Boolean; begin //SetThemeAppProperties(0); // ExtractTemporaryFile('isskin.dll'); // ExtractTemporaryFile('{#SkinName}'); // LoadSkin(ExpandConstant('{tmp}\{#SkinName}'), ''); ExtractTemporaryFile('{#SkinName}'); LoadVCLStyle(ExpandConstant('{tmp}\{#SkinName}')); GIFHWND2 := 0; ExtractTemporaryFile('MusicButton.bmp'); ExtractTemporaryFile('music.mp3'); ExtractTemporaryFile('innocallback.dll'); if not FileExists(ExpandConstant('{tmp}\botva2.dll')) then ExtractTemporaryFile('botva2.dll'); Result:=True; end; procedure LogoLabelOnClick(Sender: TObject); begin ShellExec('open', 'http://www.leeuniverse.com', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode) end; procedure LblOnClick(Sender: TObject); begin ShellExec('open', 'http://www.leeuniverse.com', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode); end; procedure CreateForm; begin with WizardForm do begin X:=ScaleX(200); Y:=ScaleX(150); Position := poScreenCenter; Width:= WizardForm.Width + X; Height:= WizardForm.Height + Y; Bevel.top:= WizardForm.Bevel.top + Y; Bevel.Width:= WizardForm.Width; Bevel1.Width:= WizardForm.Width; OuterNotebook.Width := WizardForm.OuterNotebook.Width + X OuterNotebook.Height := WizardForm.OuterNotebook.Height + Y InnerNotebook.Width := WizardForm.InnerNotebook.Width + X InnerNotebook.Height := WizardForm.InnerNotebook.Height + Y Caption := ExpandConstant('{#SetupSetting("AppName")}'); // BorderStyle := bsDialog; WelcomeLabel1.Hide; WelcomeLabel2.Hide; PageNameLabel.Hide; PageDescriptionLabel.Hide; SelectComponentsLabel.Hide; ComponentsDiskSpaceLabel.Hide; DiskSpaceLabel.Hide; FinishedLabel.Hide; FinishedHeadingLabel.Hide; WizardBitmapImage.Hide; WizardBitmapImage2.Hide; SelectDirBitmapImage.Hide; SelectGroupBitmapImage.Hide; InfoAfterClickLabel.Hide; with WizardForm do begin Font.Name:='Georgia'; Font.Style := []; end; with NextButton do begin Left := WizardForm.NextButton.left + 255; Top := WizardForm.Bevel.top + 8; end; with BackButton do begin Left := WizardForm.BackButton.left + 250; Top := WizardForm.Bevel.top + 8; end; if not FileExists(ExpandConstant('{tmp}\fon.jpg')) then ExtractTemporaryFile('fon.jpg'); ImgLoad(WizardForm.WelcomePage.Handle, ExpandConstant('{tmp}\fon.jpg'), ScaleX(0),ScaleY(0),WizardForm.OuterNotebook.Width, WizardForm.OuterNotebook.Height,true,true); ImgApplyChanges(WizardForm.WelcomePage.Handle); if not FileExists(ExpandConstant('{tmp}\znak.png')) then ExtractTemporaryFile('znak.png'); ImgLoad(WizardForm.SelectDirPage.Handle, ExpandConstant('{tmp}\znak.png'), ScaleX(465), ScaleY(73), ScaleX(150), ScaleY(150), true, true); ImgApplyChanges(WizardForm.SelectDirPage.Handle); if not FileExists(ExpandConstant('{tmp}\finish.jpg')) then ExtractTemporaryFile('finish.jpg'); ImgLoad(WizardForm.FinishedPage.Handle, ExpandConstant('{tmp}\finish.jpg'), ScaleX(0),ScaleY(0),WizardForm.OuterNotebook.Width, WizardForm.OuterNotebook.Height,true,true); ImgApplyChanges(WizardForm.FinishedPage.Handle); if not FileExists(ExpandConstant('{tmp}\DirFolder.png')) then ExtractTemporaryFile('DirFolder.png'); DirFolder:=ImgLoad(WizardForm.SelectDirPage.Handle,ExpandConstant('{tmp}\DirFolder.png'),ScaleX(0), ScaleY(0),ScaleX(34),ScaleY(30),True,True); if not FileExists(ExpandConstant('{tmp}\GroupFolder.png')) then ExtractTemporaryFile('GroupFolder.png'); GroupFolder:=ImgLoad(WizardForm.SelectDirPage.Handle,ExpandConstant('{tmp}\GroupFolder.png'),ScaleX(0), ScaleY(120),ScaleX(34),ScaleY(30),True,True); ImgApplyChanges(WizardForm.SelectDirPage.Handle); if not FileExists(ExpandConstant('{tmp}\img.png')) then ExtractTemporaryFile('img.png'); Workspace:=ImgLoad(WizardForm.SelectComponentsPage.Handle,ExpandConstant('{tmp}\img.png'), ScaleX(300), ScaleY(10), ScaleX(310), ScaleY(280),True,True); ImgApplyChanges(WizardForm.SelectComponentsPage.Handle); ExtractTemporaryFile('Click.WAV'); ExtractTemporaryFile('WFEnter.WAV'); ExtractTemporaryFile('Check.WAV'); ExtractTemporaryFile('logo.png'); MyLogo:=ImgLoad(WizardForm.WelcomePage.Handle,ExpandConstant('{tmp}\logo.png'), ScaleX(520), ScaleY(6), ScaleX(160), ScaleY(140), False, False); ImgApplyChanges(WizardForm.WelcomePage.Handle); LogoLabel := TLabel.Create(WizardForm); with LogoLabel do begin Parent := WizardForm.WelcomePage; SetBounds(ScaleX(520), ScaleY(6), 160, 140); Transparent:=True; Cursor := crHand; OnClick:=@LogoLabelOnClick; end; // =================== [Form] ============================== with WizardForm do begin with NextButton do begin OnMouseEnter := @PlaySoundOnEnter; OnMouseDown := @PlaySoundOnMouseDown; OnMouseUp := @PlaySoundOnMouseUp; end; with BackButton do begin OnMouseEnter := NextButton.OnMouseEnter; OnMouseDown := NextButton.OnMouseDown; OnMouseUp := NextButton.OnMouseUp; end; with CancelButton do begin OnMouseEnter := NextButton.OnMouseEnter; OnMouseDown := NextButton.OnMouseDown; OnMouseUp := NextButton.OnMouseUp; end; with DirBrowseButton do begin OnMouseEnter := NextButton.OnMouseEnter; OnMouseDown := NextButton.OnMouseDown; OnMouseUp := NextButton.OnMouseUp; end; with GroupBrowseButton do begin OnMouseEnter := NextButton.OnMouseEnter; OnMouseDown := NextButton.OnMouseDown; OnMouseUp := NextButton.OnMouseUp; end; with MainPanel do Width:= WizardForm.MainPanel.Width + X; with WizardSmallBitmapImage do begin SetBounds(ScaleX(0), ScaleY(0), 700, 60); end; with WizardForm.DirEdit do begin AutoSelect := False; ReadOnly := True; end; with ComponentsList do begin SetBounds(ScaleX(5), ScaleY(10), 280, 280); Color := clBtnFace; Font.Name := 'Tahoma'; Font.Size := 9; Font.Style := []; Parent:= WizardForm.SelectComponentsPage; end; with WizardForm.GroupBrowseButton do begin Top := ScaleY(191); Parent := WizardForm.SelectDirPage; end; with WizardForm.GroupEdit do begin Top := ScaleY(192); Parent := WizardForm.SelectDirPage; end; with WizardForm.SelectStartMenuFolderBrowseLabel do begin Parent := WizardForm.SelectDirPage; Top := ScaleY(155); end; with WizardForm.SelectStartMenuFolderLabel do begin Parent := WizardForm.SelectDirPage; Top := ScaleY(128); end; // with NoIconsCheck do // begin // Parent := WizardForm.SelectDirPage; // Top := ScaleY(250); // Visible := true end; WizardForm.ReadyMemo.SetBounds(ScaleX(0), ScaleY(60), 610, 300); end; with WizardForm.SelectTasksPage do begin WizardForm.TasksList.SetBounds(ScaleX(0), WizardForm.TasksList.Top, 610, 340); end; with WizardForm do begin with TasksList do begin ShowHint := True; Hint := ''; OnItemMouseMove := @HintStr; end; with WizardForm.InfoAfterMemo do begin WizardForm.InfoAfterMemo.SetBounds(ScaleX(0), ScaleY(30), 610, 300); end; with WizardForm.InfoBeforeMemo do begin WizardForm.InfoBeforeMemo.SetBounds(ScaleX(0), ScaleY(60), 610, 300); end WizardForm.LicenseNotAcceptedRadio.Hide; WizardForm.LicenseAcceptedRadio.Hide; WizardForm.LicenseMemo.Left := ScaleX(0); WizardForm.LicenseMemo.Top := ScaleY(60); WizardForm.LicenseMemo.Width := ScaleX(610); WizardForm.LicenseMemo.Height := ScaleY(300); CheckLicense:= TCheckBox.Create(WizardForm); CheckLicense.Left:= ScaleX(0); CheckLicense.Top:= ScaleY(360); CheckLicense.Caption:= WizardForm.LicenseAcceptedRadio.Caption; CheckLicense.Width:= ScaleX(410); CheckLicense.OnClick:= @LicenseOnClick; CheckLicense.Parent:= WizardForm.LicensePage; with WizardForm.PreparingLabel do begin Width := ScaleX(610); end; WizardForm.PreparingMemo.SetBounds(ScaleX(0), WizardForm.PreparingMemo.Top, 610, WizardForm.PreparingMemo.Height); end; with WizardForm.FilenameLabel do begin Left := ScaleX(0) Top := ScaleY(50); Width := ScaleX(580); end; WizardForm.StatusLabel.Left := ScaleX(0) with WizardForm.ProgressGauge do begin Parent:=WizardForm.InstallingPage; SetBounds(ScaleX(0), ScaleY(100), 580, 30); Hide; end; TextureProgressBar(WizardForm.ProgressGauge, $898987, cllime, false); end; // =================== [Form] ============================== procedure InitializeWizard(); begin InitInfo(); CreateForm; // ButtonsTextures; Music; mp3Name := ExpandConstant('{tmp}\music.mp3'); BASS_Init(-1, 44100, 0, 0, 0); mp3Handle := BASS_StreamCreateFile(FALSE, PAnsiChar(mp3Name), 0, 0, 0, 0, BASS_SAMPLE_LOOP); BASS_Start(); BASS_ChannelPlay(mp3Handle, False); ExtractTemporaryFile('logo.gif'); GIFHWND2 := NewGifbWnd(WizardForm.Handle, ScaleX(80), WizardForm.Bevel.Top + ScaleY(8), 160, 33); GifWndLoadFromFile(GIFHWND2, HALIGN_CENTER, VALIGN_CENTER, CLR_INVALID, FIT_NONE, ExpandConstant('{tmp}\logo.gif')); Lbl := TNewStaticText.Create(WizardForm); Lbl.Parent := WizardForm; Lbl.AutoSize := False; Lbl.SetBounds(ScaleX(80), WizardForm.Bevel.Top + ScaleY(8), 160, 33); Lbl.OnClick := @LblOnClick; Lbl.Cursor := crHand; InfoPanel := TPanel.Create(WizardForm); InfoPanel.SetBounds(ScaleX(5), ScaleY(300), 605, 80); Info := TNewStaticText.Create(WizardForm); Info.Parent := WizardForm.SelectComponentsPage; Info.AutoSize := False; Info.SetBounds(ScaleX(15), ScaleY(310), 588, 68); Info.Caption := ''; Info.Font.Name := ''; Info.Font.Size := 9; Info.WordWrap := true; enabledesc(WizardForm.ComponentsList.Handle,Info.Handle, 'XVM: eXtended Visualization Mod — modification of the combat interface for the popular MMO World of Tanks. To display statistics, you need to enable it on the site XVM (www.modxvm.com);'+ 'XVM Ded_Shalfey configs "Prime_eff". Rating statistics Total victory of and techniques chance;'+ // ' ;'+ 'The sight of Jimbo. This sight can be classified as futuristic. Though he is equipped with additional graphic details - they do not have an overabundance, established a rather compact and organically.;'+ 'Sights from Zayaz help you not only comfortable and shoot accurately, but still give you a chance to not get under the opponents shots.;'+ 'The sight of Spectr20. Simple minimalist sight calculator enemy armor. The first value of your penetration of the projectile, the second tank armor at this point. Art sight can be adjusted from the config file CPSSetting.xml;'+ // ' ;'+ // 'Modification of fashion "Advanced tips for skills and abilities" of phantasm, add an extension to the description of the skills, abilities, medals, consumables and snaryadam.Ves font normal size, the positive effects are highlighted in green;'+ // 'Maud colored messages (MCM) from Vslav666. Detailed statistics on the battle, the number of wins and losses, the entire wage experience wage display free experience for the fight;'+ // ' ;'+ // 'The easiest and fastest hangar of Hellinger. This hangar is notable for the fact that its author has made every effort to improve system performance while in the hangar. Ideal for owners of low-end PCs.;'+ // ' ;'+ '6 Ozvuchka feelings sound fire perezaryad and t.p;' ); end; procedure ShowComponents(CurPageID: Integer); begin case CurPageID of wpSelectDir: begin ImgSetVisibility(DirFolder,True); ImgSetVisibility(GroupFolder,True); end; end; end; procedure CurPageChanged(CurPageID: Integer); begin // if CurPageID = wpSelectDir then // WizardForm.NoIconsCheck.Checked := true; // SetStateNewButtons; ImgSetVisibility(DirFolder,False); ImgSetVisibility(GroupFolder,False); ShowComponents(CurPageID); ImgApplyChanges(WizardForm.InnerPage.Handle) ImgApplyChanges(WizardForm.Handle); if CurPageID=wpFinished then begin WizardForm.ProgressGauge.Hide; //SendMessage(WizardForm.NextButton.Handle,BM_CLICK,0,0); end; end; procedure CurStepChanged(CurStep: TSetupStep); begin ProgressTimer(CurStep); if CurStep = ssInstall then begin MoveDir(ExpandConstant('{app}\res_mods\'),ExpandConstant('{app}\Backup')); WizardForm.ProgressGauge.Show; end; //begin //if CurStep = ssDone then //if MsgBox('modification ' + 'successfully' + ' performed!' + #10#10#13 + 'Start ' + 'game' + '?' , mbInformation, MB_OKCANCEL) = IDOK then //Exec(ExpandConstant('{app}\WorldOfTanks.exe'), '', '', SW_SHOW, ewNoWait, ResultCode); //end; end; procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); begin if CurUninstallStep = usPostUninstall then begin MoveDir(ExpandConstant('{app}\Backup\'),ExpandConstant('{app}\res_mods')); RemoveDir(ExpandConstant('{app}\Backup')); RestoreBackup(ExpandConstant('{app}')) end; end; procedure DeinitializeSetup(); begin ShowWindow(StrToInt(ExpandConstant('{wizardhwnd}')), 0); // UnloadSkin; gdipShutdown; FreeAllGifWnd(); // WFButtonFont.Free; disabledesc(); BASS_Stop(); BASS_Free(); end; //function InitializeUninstall: Boolean; // begin // FileCopy(ExpandConstant('{app}\VclStylesinno.dll'), ExpandConstant('{tmp}\VclStylesinno.dll'), False); // FileCopy(ExpandConstant('{app}\{#SkinName}'), ExpandConstant('{tmp}\{#SkinName}'), False); // LoadSkin(ExpandConstant('{tmp}\{#SkinName}'), ''); // Result:=True; // end;
-
Уважаемые, а вот такой вопросец.
Как изменить внешний вид шрифта на одном из компонентов? Пример для наглядности моего вопроса под спойлером.
[Tasks]Name: "Original"; Description: "F.E.A.R."; GroupDescription: "Какая версия игры установлена?"; Flags: exclusive unchecked;
Name: "EP"; Description: "F.E.A.R.: Extraction Point"; GroupDescription: "Какая версия игры установлена?"; Flags: exclusive;
попробуй так:
procedure InitializeWizard(); begin WizardForm.ComponentsList.ItemFontStyle[0] := [fsBold]; WizardForm.ComponentsList.ItemFontStyle[1] := [fsItalic]; end;
пример:
[Setup] AppName=My App AppVersion=1.0 DefaultDirName=MyApp [Languages] Name: rus; MessagesFile: compiler:Languages\Russian.isl [Components] Name: mod; Description: mod; Name: mod2; Description: mod2; Flags: exclusive disablenouninstallwarning [Code] procedure InitializeWizard(); begin WizardForm.ComponentsList.ItemFontStyle[0] := [fsBold]; WizardForm.ComponentsList.ItemFontStyle[1] := [fsItalic]; end;
-
Кто-нибудь может подсказать, как сделать, чтобы после окончания установки была галочка "прочесть readme.txt". как это реализовать правильно? Заранее спасибо
[Files] Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme
- 1
-
Уважаемые, перечитал весь форум, но похожего не нашел. В справке тоже не нашел (видимо, плохо искал). Вопрос по этому блоку:
BtnPanel:=TPanel.Create(WizardForm)
with BtnPanel do begin
Left:=0
Top:=315
Width:=179
Height:=46
Cursor:=crHand
OnClick:=@logoOnClick
Parent:=WizardForm
end;
Привязка идет от верха. Можно ее изменить на привязку от нижнего края?
position: absolute не прокатило (понять не может), bottom тоже проге не прокатило.
попробуй так например:
BtnPanel:=TPanel.Create(WizardForm) with BtnPanel do begin Cursor:=crHand OnClick:=@logoOnClick Parent:=WizardForm SetBounds(ScaleX(30), WizardForm.Bevel.Top + ScaleY(-1), 179, 31);
ну и потихоньку вверх... -10...-50...-100 и т.д.
Если не правильно понял, то извиняй
- 1
-
только не пойму как визуально отредактировать раположение картинки
там есть строчки
SetBounds(ScaleX(245), ScaleY(42), ScaleX(166), ScaleY(165)); // слева сверху ширина высота
вот их и редактируй.. размер картинки, окно, рамка. всего 3.
-
случаем не это ищите?
[Setup] AppName=My Program AppVerName=My Program v.1.2 DefaultDirName={pf}\My Program Compression=none [Components] Name: ZK1; Description: Звуковой мод звонок при крите модуля1.; Flags: disablenouninstallwarning exclusive Name: ZK2; Description: Звуковой мод звонок при крите модуля2.; Flags: disablenouninstallwarning exclusive [Files] //------- ваши картинки ------------ Source: image\1.bmp; Flags: dontcopy nocompression Source: image\2.bmp; Flags: dontcopy nocompression [code] const UNDEF_INDEX = -777; function GetCursorPos(var lpPoint: TPoint): BOOL; external '[email protected] stdcall'; var InfoPic: TBitmapImage; LastIndex: Integer; TempPath: String; procedure ShowPicHint(const PicFilePath: String); var pt: TPoint; begin if not GetCursorPos(pt) then Exit; InfoPic.Bitmap.LoadFromFile(PicFilePath); InfoPic.SetBounds(ScaleX(245), ScaleY(42), ScaleX(166), ScaleY(165)); InfoPic.Show; end; procedure CompOnItemMouseMove(Sender: TObject; X, Y: Integer; Index: Integer; Area: TItemArea); var UndefPic: String; begin if Index = -1 then Exit; if Index = LastIndex then Exit; try case TNewCheckListBox(Sender).ItemCaption[Index] of 'Звуковой мод звонок при крите модуля1.': UndefPic := '1.bmp'; // пишем точно так же, как прописано в компонентах 'Звуковой мод звонок при крите модуля2.': UndefPic := '2.bmp'; else begin LastIndex := UNDEF_INDEX; InfoPic.Hide; Exit; end; end; if not FileExists(TempPath + UndefPic) then ExtractTemporaryFile(UndefPic); ShowPicHint(TempPath + UndefPic); finally LastIndex := Index; end; end; procedure CompOnMouseLeave(Sender: TObject); begin InfoPic.Hide; LastIndex := -1; end; procedure InitInfo(); begin WizardForm.TypesCombo.Hide; WizardForm.ComponentsList.SetBounds(ScaleX(0), ScaleY(37), ScaleX(225), ScaleY(176)); WizardForm.ComponentsList.OnItemMouseMove := @CompOnItemMouseMove; WizardForm.ComponentsList.OnMouseLeave := @CompOnMouseLeave; TempPath := AddBackslash(ExpandConstant('{tmp}')); LastIndex := UNDEF_INDEX; with TBevel.Create(WizardForm) do begin Parent := WizardForm.SelectComponentsPage; SetBounds(ScaleX(240), ScaleY(37), ScaleX(177), ScaleY(176)); Shape := bsFrame; end; InfoPic := TBitmapImage.Create(WizardForm) with InfoPic do begin Parent := WizardForm.SelectComponentsPage; AutoSize := True; end; end; procedure InitializeWizard(); begin InitInfo(); end;
- 1
-
-
однозначно есть проблема! де активировать не получается. сразу исчезает логин! входишь заново не получается ди активировать и все
Попробуй через IE. на сторонних браузерах чето тупит.
-
Хотел бы спросить, почему при установке конфига xvm невозможно войти в игру из-за отсутствия серверов списке?
Вот скрины:
http://imgdisk.ru/images/8Ko.jpg
http://imgdisk.ru/images/cXzl.jpg
P-mod присутствует, надеюсь это не из-за него, ибо отключение функции сохранения сервера я комбинировал и там, и в конфиге.
-
Я тебя активировал. Но письмо возможно в спам попало! Проверь!
ок! спасибо. проверю
в спаме проверял там нет
-
Так логичнее получается!
Просьба всех, кто зарегистрирован на моем сайте, принять участие в тестировании - http://krish8.bget.ru/testirovanie
P.S. Доступ только для зарегистрированных! Отписываться только там!
Дед, письмо с инструкцией для дальнейшей регистрации на почту не приходит (2 день уже). никак не залогиниться :(
почта маил.ру. помоги. ник такой же.
-
Всем здравствуйте! Как можно включить показ статистики (процент побед, КПД и т.д) в Достижениях в ангаре?
скачай ночник http://nightly.modxvm.com/ и сверху закинь конфиг Деда
[5.5.0, 28.12.14] Ded_Shalfey config
in Ready-to-use XVM configurations
Posted
Боевое обучение ?
В клиенте - выбор режима боя (справа от кнопки * бой*) в самом низу.