duxa174
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору #define MyAppName "My Program" #define MyAppVerName "My Program 1.5" #define MyAppPublisher "My Company, Inc." #define MyAppURL "http://www.example.com/" #define MyAppExeName "MyProg.exe" [Setup] AppId={{2592F47E-6070-492B-B041-9E063395861B} AppName={#MyAppName} AppVerName={#MyAppVerName} AppPublisher={#MyAppPublisher} AppPublisherURL={#MyAppURL} AppSupportURL={#MyAppURL} AppUpdatesURL={#MyAppURL} DefaultDirName={pf}\{#MyAppName} DefaultGroupName={#MyAppName} OutputBaseFilename=setup Compression=lzma SolidCompression=yes [Languages] Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl" [Tasks] Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked [Files] Source: button.bmp; DestDir: {tmp}; Flags: dontcopy [Icons] Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon [Run] Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, "&", "&&")}}"; Flags: nowait postinstall skipifsilent [code] const ButtonWidth = 80; //Указываем размер кнопок ButtonHeight = 23; bidBack = 0; bidNext = 1; bidCancel = 2; bidDirBrowse = 3; bidGroupBrowse = 4; var ButtonPanel: array [0..4] of TPanel; ButtonImage: array [0..4] of TBitmapImage; ButtonLabel: array [0..4] of TLabel; procedure ButtonLabelClick(Sender: TObject); var Button: TButton; begin ButtonImage[TLabel(Sender).Tag].Left:=0 case TLabel(Sender).Tag of bidBack: Button:=WizardForm.BackButton bidNext: Button:=WizardForm.NextButton bidCancel: Button:=WizardForm.CancelButton bidDirBrowse: Button:=WizardForm.DirBrowseButton bidGroupBrowse: Button:=WizardForm.GroupBrowseButton else Exit 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 end; procedure ButtonLabelMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin ButtonImage[TLabel(Sender).Tag].Left:=0 end; procedure LoadButtonImage(AButton: TButton; AButtonIndex: integer); var Image: TBitmapImage; Panel: TPanel; Labl: TLabel; begin Panel:=TPanel.Create(WizardForm) Panel.Left:=AButton.Left Panel.Top:=AButton.Top Panel.Width:=AButton.Width Panel.Height:=AButton.Height Panel.Tag:=AButtonIndex Panel.Parent:=AButton.Parent ButtonPanel[AButtonIndex]:=Panel Image:=TBitmapImage.Create(WizardForm) //Рисунок который ложится на кнопку Image.Width:=160 //Обязательно прописать оригинальный размер рисунка Image.Height:=23 Image.Enabled:=False Image.Bitmap.LoadFromFile(ExpandConstant('{tmp}\button.bmp')) Image.Parent:=Panel ButtonImage[AButtonIndex]:=Image with TLabel.Create(WizardForm) do begin Tag:=AButtonIndex Parent:=Panel Width:=Panel.Width Height:=Panel.Height Transparent:=True OnClick:=@ButtonLabelClick OnDblClick:=@ButtonLabelClick OnMouseDown:=@ButtonLabelMouseDown OnMouseUp:=@ButtonLabelMouseUp end Labl:=TLabel.Create(WizardForm) //Текст кнопок Labl.Left:=13 //Указываем положение текста Labl.Top:=5 Labl.Autosize:=True Labl.Alignment:=taCenter Labl.Tag:=AButtonIndex Labl.Transparent:=True Labl.Font.Color:=clWhite //Цвет текста Labl.Caption:=AButton.Caption Labl.OnClick:=@ButtonLabelClick Labl.OnDblClick:=@ButtonLabelClick Labl.OnMouseDown:=@ButtonLabelMouseDown Labl.OnMouseUp:=@ButtonLabelMouseUp Labl.Parent:=Panel ButtonLabel[AButtonIndex]:=Labl end; procedure UpdateButton(AButton: TButton;AButtonIndex: integer); begin ButtonLabel[AButtonIndex].Caption:=AButton.Caption ButtonPanel[AButtonIndex].Visible:=AButton.Visible ButtonLabel[AButtonIndex].Enabled:=Abutton.Enabled end; procedure LicenceAcceptedRadioOnClick(Sender: TObject); begin ButtonLabel[bidNext].Enabled:=True end; procedure LicenceNotAcceptedRadioOnClick(Sender: TObject); begin ButtonLabel[bidNext].Enabled:=False end; procedure CurPageChanged5(CurPageID: Integer); begin UpdateButton(WizardForm.BackButton,bidBack) UpdateButton(WizardForm.NextButton,bidNext) UpdateButton(WizardForm.CancelButton,bidCancel) end; procedure InitializeWizard2(); begin 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:=337 WizardForm.DirBrowseButton.Width:=ButtonWidth WizardForm.DirBrowseButton.Height:=ButtonHeight WizardForm.GroupBrowseButton.Left:=337 WizardForm.GroupBrowseButton.Width:=ButtonWidth WizardForm.GroupBrowseButton.Height:=ButtonHeight WizardForm.LicenseAcceptedRadio.OnClick:=@LicenceAcceptedRadioOnClick WizardForm.LicenseNotAcceptedRadio.OnClick:=@LicenceNotAcceptedRadioOnClick ExtractTemporaryFile('button.bmp') LoadButtonImage(WizardForm.BackButton,bidBack) LoadButtonImage(WizardForm.NextButton,bidNext) LoadButtonImage(WizardForm.CancelButton,bidCancel) LoadButtonImage(WizardForm.DirBrowseButton,bidDirBrowse) LoadButtonImage(WizardForm.GroupBrowseButton,bidGroupBrowse) end; Procedure InitializeWizard1(); Begin // NSISImageHeader; WizardForm.CancelButton.BringToFront; End; function GetSystemMetrics(nIndex:Integer):integer; external 'GetSystemMetrics@user32.dll stdcall delayload'; procedure CurPageChanged6(CurPageID: Integer); begin if CurPageID=wpInstalling then begin WizardForm.BorderStyle:=bsDialog; WizardForm.MainPanel.Visible:=False; WizardForm.Width:=ScaleX(320); WizardForm.Height:=ScaleY(127); WizardForm.InnerNotebook.Left:=ScaleX(7); WizardForm.InnerNotebook.Top:=ScaleY(7); WizardForm.InnerNotebook.Width:=ScaleX(300); WizardForm.StatusLabel.Left:=ScaleX(0); WizardForm.StatusLabel.Top:=ScaleY(0); WizardForm.StatusLabel.Width:=WizardForm.InnerNotebook.Width; WizardForm.FileNameLabel.Left:=ScaleX(0); WizardForm.FileNameLabel.Top:=ScaleY(17); WizardForm.FileNameLabel.Width:=WizardForm.InnerNotebook.Width; WizardForm.ProgressGauge.Top:=ScaleY(37); WizardForm.ProgressGauge.Left:=ScaleX(0); WizardForm.ProgressGauge.Width:=WizardForm.InnerNotebook.Width; WizardForm.CancelButton.Left:=ScaleX(122); WizardForm.CancelButton.Top:=ScaleY(70); WizardForm.Left:=GetSystemMetrics(16)-ScaleX(330); WizardForm.Top:=GetSystemMetrics(17)-ScaleX(110); WizardForm.CancelButton.Enabled:=false; //(Кнопка отмены не активна) end; if CurPageID=wpFinished then begin WizardForm.Width:=502;{Размер окна по горизонтали} WizardForm.Height:=392;{Размер окна по вертикали} WizardForm.Position:=poScreenCenter; {Возврат в исходное состояние} end end; const SC_MOVE = $F010; MF_BYCOMMAND = 0; function GetSystemMenu(Wnd: HWnd; bRevert: boolean): HWnd; external 'GetSystemMenu@user32.dll stdcall'; function RemoveMenu(hMenu: HWnd; uPosition: Integer; uFlags: Longint): boolean; external 'RemoveMenu@user32.dll stdcall'; procedure CurStepChanged(CurStep: TSetupStep); begin if CurStep=ssInstall then begin RemoveMenu(GetSystemMenu(WizardForm.Handle, false), SC_MOVE, MF_BYCOMMAND); end; end; const Color = clblack; procedure InitializeWizard3(); begin WizardForm.PageNameLabel.Font.Color:=clWhite; WizardForm.LicenseAcceptedRadio.Font.Color:=clWhite; WizardForm.LicenseNotAcceptedRadio.Font.Color:=clWhite; 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.PageNameLabel.Color:=Color; WizardForm.PageDescriptionLabel.Color:=Color; WizardForm.ReadyLabel.Color:=Color; WizardForm.FinishedLabel.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.FinishedHeadingLabel.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; procedure InitializeWizard(); begin InitializeWizard2(); InitializeWizard1(); InitializeWizard3(); end; procedure CurPageChanged(CurPageID: Integer); begin CurPageChanged5(CurPageID); CurPageChanged6(CurPageID); end; | Всего записей: 177 | Зарегистр. 26-03-2010 | Отправлено: 18:33 10-05-2010 | Исправлено: duxa174, 18:35 10-05-2010 |
|