YURSHAT
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору [Setup] AppName=My Program AppVerName=My Program 1.5 DefaultDirName={pf}\My Program DefaultGroupName=My Program [Files] Source: C:\Documents and Settings\Администратор\Рабочий стол\Новая папка (4)\Вариант 1\button.bmp; DestDir: {tmp}; Flags: dontcopy Source: C:\Documents and Settings\Администратор\Рабочий стол\Новая папка (4)\Вариант 1\WizardImage2.bmp; DestDir: {tmp}; Flags: dontcopy Source: Transparent Arrow.cur; DestDir: "{tmp}"; Flags: dontcopy Source: Transparent Hand.cur; DestDir: "{tmp}"; Flags: dontcopy [Code] const ButtonWidth = 80; //Указываем размер кнопок ButtonHeight = 23; bidBack = 0; bidNext = 1; bidCancel = 2; bidDirBrowse = 3; bidGroupBrowse = 4; GCL_HCURSOR = (-12); OCR_NORMAL = 32512; function LoadCursorFromFile(FileName: String): Longint; external 'LoadCursorFromFileA@user32 stdcall'; function SetClassLong(hWnd: HWND; Index, NewLong: Longint): Longint; external 'SetClassLongA@user32 stdcall'; function SetCursor(Cursor: Longint): Longint; external 'SetCursor@user32 stdcall'; function SetSystemCursor(Cursor, CurType: Longint): Longint; external 'SetSystemCursor@user32 stdcall'; function GetCursor(): Longint; external 'GetCursor@user32 stdcall'; Var ButtonPanel: array [0..4] of TPanel; ButtonImage: array [0..4] of TBitmapImage; ButtonLabel: array [0..4] of TLabel; WizardImage: TBitmapImage; YesRadio,NoRadio: TRadioButton; WelcomeLabel1,WelcomeLabel2,LicenseLabel1,LicenseAcceptedLabel,LicenseNotAcceptedLabel,PasswordLabel,PasswordEditLabel, InfoBeforeClickLabel,UserInfoNameLabel,UserInfoOrgLabel,UserInfoSerialLabel,SelectDirLabel,SelectDirBrowseLabel,DiskSpaceLabel, SelectComponentsLabel,ComponentsDiskSpaceLabel,SelectStartMenuFolderLabel,SelectStartMenuFolderBrowseLabel,NoIconsLabel, SelectTasksLabel,ReadyLabel,StatusLabel,InfoAfterClickLabel,FinishedHeadingLabel,FinishedLabel,YesRadioLabel,NoRadioLabel, BeveledLabel: TLabel; CheckBox: TCheckBox; CheckBoxLabel: Tlabel; ResultCode: Integer; OldCursor, NewCursor, NewCursor1: Longint; 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:=23 //Указываем положение текста 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 NoIconsLabelOnClick (Sender: TObject); begin WizardForm.NoIconsCheck.Checked:=Not(WizardForm.NoIconsCheck.Checked) end; Procedure HideAll(); begin WizardForm.Bevel.Hide WizardForm.Bevel1.Hide WizardForm.MainPanel.Hide WizardForm.BeveledLabel.Hide WizardForm.OuterNotebook.Hide WizardForm.InnerNotebook.Hide WelcomeLabel1.Hide WelcomeLabel2.Hide SelectDirLabel.Hide SelectDirBrowseLabel.Hide WizardForm.DirEdit.Hide WizardForm.DirBrowseButton.Hide DiskSpaceLabel.Hide SelectStartMenuFolderLabel.Hide SelectStartMenuFolderBrowseLabel.Hide WizardForm.GroupEdit.Hide WizardForm.GroupBrowseButton.Hide WizardForm.NoIconsCheck.Hide NoIconsLabel.Hide SelectTasksLabel.Hide WizardForm.TasksList.Hide ReadyLabel.Hide WizardForm.ReadyMemo.Hide StatusLabel.Hide WizardForm.ProgressGauge.Hide FinishedHeadingLabel.Hide FinishedLabel.Hide end; Procedure InitializeSkin(); begin ExtractTemporaryFile('WizardImage2.bmp') WizardImage:=TBitmapImage.Create(WizardForm) WizardImage.AutoSize:=True WizardImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizardImage2.bmp')) WizardImage.Parent:=WizardForm WizardForm.ClientWidth:=690 WizardForm.ClientHeight:=496 WizardForm.Font.Color:=$ffffff WizardForm.Center WizardForm.BackButton.Left:=293 WizardForm.BackButton.Top:=462 WizardForm.BackButton.Width:=80 WizardForm.BackButton.Height:=23 WizardForm.NextButton.Left:=375 WizardForm.NextButton.Top:=462 WizardForm.NextButton.Width:=80 WizardForm.NextButton.Height:=23 WizardForm.CancelButton.Left:=600 WizardForm.CancelButton.Top:=462 WizardForm.CancelButton.Width:=80 WizardForm.CancelButton.Height:=23 BeveledLabel:=TLabel.Create(WizardForm) BeveledLabel.Left:=10 BeveledLabel.Top:=468 BeveledLabel.Font.Color:=clWhite BeveledLabel.Transparent:=True BeveledLabel.Caption:=WizardForm.BeveledLabel.Caption BeveledLabel.Parent:=WizardForm WizardForm.BeveledLabel.Left:=700 // wpWelcome WelcomeLabel1:=TLabel.Create(WizardForm) WelcomeLabel1.Left:=205 WelcomeLabel1.Top:=90 WelcomeLabel1.Width:=465 WelcomeLabel1.Height:=28 WelcomeLabel1.AutoSize:=False WelcomeLabel1.WordWrap:=True WelcomeLabel1.Transparent:=True WelcomeLabel1.Font.Color:=$ffffff WelcomeLabel1.Font.Style:=[fsBold] WelcomeLabel1.Caption:=WizardForm.WelcomeLabel1.Caption WelcomeLabel1.Parent:=WizardForm WelcomeLabel2:=TLabel.Create(WizardForm) WelcomeLabel2.Left:=205 WelcomeLabel2.Top:=130 WelcomeLabel2.Width:=465 WelcomeLabel2.Height:=200 WelcomeLabel2.AutoSize:=False WelcomeLabel2.WordWrap:=True WelcomeLabel2.Transparent:=True WelcomeLabel2.Caption:=WizardForm.WelcomeLabel2.Caption WelcomeLabel2.Parent:=WizardForm // wpSelectDir SelectDirLabel:=TLabel.Create(WizardForm) SelectDirLabel.Left:=205 SelectDirLabel.Top:=90 SelectDirLabel.Width:=465 SelectDirLabel.Height:=28 SelectDirLabel.AutoSize:=False SelectDirLabel.WordWrap:=True SelectDirLabel.Transparent:=True SelectDirLabel.Caption:=WizardForm.SelectDirLabel.Caption SelectDirLabel.Parent:=WizardForm SelectDirBrowseLabel:=TLabel.Create(WizardForm) SelectDirBrowseLabel.Left:=205 SelectDirBrowseLabel.Top:=120 SelectDirBrowseLabel.Width:=465 SelectDirBrowseLabel.Height:=28 SelectDirBrowseLabel.AutoSize:=False SelectDirBrowseLabel.WordWrap:=True SelectDirBrowseLabel.Transparent:=True SelectDirBrowseLabel.Caption:=WizardForm.SelectDirBrowseLabel.Caption SelectDirBrowseLabel.Parent:=WizardForm WizardForm.DirEdit.Left:=205 WizardForm.DirEdit.Top:=380 WizardForm.DirEdit.Width:=370 WizardForm.DirEdit.Height:=21 WizardForm.DirEdit.Color:=$000000 WizardForm.DirEdit.Font.Color:=$ffffff WizardForm.DirEdit.Parent:= WizardForm WizardForm.DirBrowseButton.Width:=80 WizardForm.DirBrowseButton.Height:=23 WizardForm.DirBrowseButton.Parent:= WizardForm DiskSpaceLabel:=TLabel.Create(WizardForm) DiskSpaceLabel.Left:=205 DiskSpaceLabel.Top:=415 DiskSpaceLabel.Transparent:=True DiskSpaceLabel.Caption:=WizardForm.DiskSpaceLabel.Caption DiskSpaceLabel.Parent:=WizardForm // wpSelectProgramGroup SelectStartMenuFolderLabel:=TLabel.Create(WizardForm) SelectStartMenuFolderLabel.Left:=205 SelectStartMenuFolderLabel.Top:=90 SelectStartMenuFolderLabel.Width:=465 SelectStartMenuFolderLabel.Height:=28 SelectStartMenuFolderLabel.AutoSize:=False SelectStartMenuFolderLabel.WordWrap:=True SelectStartMenuFolderLabel.Transparent:=True SelectStartMenuFolderLabel.Caption:=WizardForm.SelectStartMenuFolderLabel.Caption SelectStartMenuFolderLabel.Parent:=WizardForm SelectStartMenuFolderBrowseLabel:=TLabel.Create(WizardForm) SelectStartMenuFolderBrowseLabel.Left:=205 SelectStartMenuFolderBrowseLabel.Top:=120 SelectStartMenuFolderBrowseLabel.Width:=465 SelectStartMenuFolderBrowseLabel.Height:=28 SelectStartMenuFolderBrowseLabel.AutoSize:=False SelectStartMenuFolderBrowseLabel.WordWrap:=True SelectStartMenuFolderBrowseLabel.Transparent:=True SelectStartMenuFolderBrowseLabel.Caption:=WizardForm.SelectStartMenuFolderBrowseLabel.Caption SelectStartMenuFolderBrowseLabel.Parent:=WizardForm WizardForm.GroupEdit.Left:=205 WizardForm.GroupEdit.Top:=380 WizardForm.GroupEdit.Width:=370 WizardForm.GroupEdit.Height:=21 WizardForm.GroupEdit.Color:=$000000 WizardForm.GroupEdit.Font.Color:=$ffffff WizardForm.GroupEdit.Parent:= WizardForm WizardForm.GroupBrowseButton.Left:=378 WizardForm.GroupBrowseButton.Top:=288 WizardForm.GroupBrowseButton.Width:=80 WizardForm.GroupBrowseButton.Height:=23 WizardForm.GroupBrowseButton.Parent:= WizardForm WizardForm.NoIconsCheck.Left:=205 WizardForm.NoIconsCheck.Top:=415 WizardForm.NoIconsCheck.Width:=13 WizardForm.NoIconsCheck.Height:=13 WizardForm.NoIconsCheck.Visible:=True WizardForm.NoIconsCheck.Parent:= WizardForm NoIconsLabel:=TLabel.Create(WizardForm) NoIconsLabel.Left:=221 NoIconsLabel.Top:=415 NoIconsLabel.Transparent:=True NoIconsLabel.OnClick:= @NoIconsLabelOnClick NoIconsLabel.Caption:=WizardForm.NoIconsCheck.Caption NoIconsLabel.Parent:=WizardForm // wpSelectTasks SelectTasksLabel:=TLabel.Create(WizardForm) SelectTasksLabel.Left:=205 SelectTasksLabel.Top:=90 SelectTasksLabel.Width:=465 SelectTasksLabel.Height:=28 SelectTasksLabel.AutoSize:=False SelectTasksLabel.WordWrap:=True SelectTasksLabel.Transparent:=True SelectTasksLabel.Caption:=WizardForm.SelectTasksLabel.Caption SelectTasksLabel.Parent:=WizardForm WizardForm.TasksList.Left:=205 WizardForm.TasksList.Top:=124 WizardForm.TasksList.Width:=465 WizardForm.TasksList.Height:=300 WizardForm.TasksList.Color:=$000000 WizardForm.TasksList.Font.Color:=$ffffff WizardForm.TasksList.Parent:= WizardForm // wpReady ReadyLabel:=TLabel.Create(WizardForm) ReadyLabel.Left:=205 ReadyLabel.Top:=90 ReadyLabel.Width:=465 ReadyLabel.Height:=28 ReadyLabel.AutoSize:=False ReadyLabel.WordWrap:=True ReadyLabel.Transparent:=True ReadyLabel.Parent:=WizardForm WizardForm.ReadyMemo.Left:=205 WizardForm.ReadyMemo.Top:=124 WizardForm.ReadyMemo.Width:=465 WizardForm.ReadyMemo.Height:=300 WizardForm.ReadyMemo.Color:=$000000 WizardForm.ReadyMemo.Font.Color:=$ffffff WizardForm.ReadyMemo.Parent:= WizardForm // wpInstalling StatusLabel:=TLabel.Create(WizardForm) StatusLabel.Left:=205 StatusLabel.Top:=90 StatusLabel.Transparent:=True StatusLabel.Caption:=WizardForm.Caption +'...' StatusLabel.Parent:=WizardForm WizardForm.ProgressGauge.Left:=205 WizardForm.ProgressGauge.Top:=120 WizardForm.ProgressGauge.Width:=465 WizardForm.ProgressGauge.Height:=21 WizardForm.ProgressGauge.Parent:= WizardForm // wpFinished FinishedHeadingLabel:=TLabel.Create(WizardForm) FinishedHeadingLabel.Left:=205 FinishedHeadingLabel.Top:=90 FinishedHeadingLabel.Width:=465 FinishedHeadingLabel.Height:=28 FinishedHeadingLabel.AutoSize:=False FinishedHeadingLabel.WordWrap:=True FinishedHeadingLabel.Transparent:=True FinishedHeadingLabel.Font.Color:=$ffffff FinishedHeadingLabel.Font.Style:=[fsBold] FinishedHeadingLabel.Caption:=WizardForm.FinishedHeadingLabel.Caption FinishedHeadingLabel.Parent:=WizardForm FinishedLabel:=TLabel.Create(WizardForm) FinishedLabel.Left:=205 FinishedLabel.Top:=130 FinishedLabel.Width:=465 FinishedLabel.Height:=56 FinishedLabel.AutoSize:=False FinishedLabel.WordWrap:=True FinishedLabel.Transparent:=True FinishedLabel.Caption:=WizardForm.FinishedLabel.Caption FinishedLabel.Parent:=WizardForm end; Procedure ShowPageComponents(CurPageID: Integer); begin Case CurPageID of wpWelcome: begin WelcomeLabel1.Show WelcomeLabel2.Show end wpSelectDir: begin SelectDirLabel.Show SelectDirBrowseLabel.Show WizardForm.DirEdit.Show WizardForm.DirBrowseButton.Show DiskSpaceLabel.Show end wpSelectProgramGroup: begin SelectStartMenuFolderLabel.Show SelectStartMenuFolderBrowseLabel.Show WizardForm.GroupEdit.Show WizardForm.GroupBrowseButton.Show end wpSelectTasks: begin SelectTasksLabel.Show WizardForm.TasksList.Show end wpReady: begin ReadyLabel.Show ReadyLabel.Caption:=WizardForm.ReadyLabel.Caption WizardForm.ReadyMemo.Show end wpInstalling: begin StatusLabel.Show WizardForm.ProgressGauge.Show end wpFinished: begin FinishedHeadingLabel.Show FinishedLabel.Show FinishedLabel.Caption:=WizardForm.FinishedLabel.Caption WizardForm.RunList.hide end end; end; procedure CurPageChanged(CurPageID: Integer); begin HideAll ShowPageComponents(CurPageID) UpdateButton(WizardForm.BackButton,bidBack) UpdateButton(WizardForm.NextButton,bidNext) UpdateButton(WizardForm.CancelButton,bidCancel) UpdateButton(WizardForm.DirBrowseButton,bidDirBrowse) UpdateButton(WizardForm.GroupBrowseButton,bidGroupBrowse) end; Procedure InitializeWizard(); var Name1: string; begin ExtractTemporaryFile('WizardImage2.bmp') ExtractTemporaryFile('Transparent Hand.cur') ExtractTemporaryFile('Transparent Arrow.cur') ExtractTemporaryFile('button.bmp') InitializeSkin NewCursor:= LoadCursorFromFile(ExpandConstant('{tmp}\Transparent Hand.cur')); NewCursor1:= LoadCursorFromFile(ExpandConstant('{tmp}\Transparent Arrow.cur')); OldCursor:= SetClassLong(WizardForm.NextButton.Handle, GCL_HCURSOR, NewCursor); OldCursor:= SetClassLong(WizardForm.Handle, GCL_HCURSOR, NewCursor1); OldCursor:= SetClassLong(WizardForm.MainPanel.Handle, GCL_HCURSOR, NewCursor); WizardForm.BackButton.Left:=293 WizardForm.BackButton.Width:=ButtonWidth WizardForm.BackButton.Height:=ButtonHeight WizardForm.NextButton.Left:=375 WizardForm.NextButton.Width:=ButtonWidth WizardForm.NextButton.Height:=ButtonHeight WizardForm.CancelButton.Left:=600 WizardForm.CancelButton.Width:=ButtonWidth WizardForm.CancelButton.Height:=ButtonHeight WizardForm.DirBrowseButton.Top:=379 WizardForm.DirBrowseButton.Left:=580 WizardForm.DirBrowseButton.Width:=ButtonWidth WizardForm.DirBrowseButton.Height:=ButtonHeight WizardForm.GroupBrowseButton.Top:=379 WizardForm.GroupBrowseButton.Left:=580 WizardForm.GroupBrowseButton.Width:=ButtonWidth WizardForm.GroupBrowseButton.Height:=ButtonHeight LoadButtonImage(WizardForm.BackButton,bidBack) LoadButtonImage(WizardForm.NextButton,bidNext) LoadButtonImage(WizardForm.CancelButton,bidCancel) LoadButtonImage(WizardForm.DirBrowseButton,bidDirBrowse) LoadButtonImage(WizardForm.GroupBrowseButton,bidGroupBrowse) end; procedure DeInitializeSetup(); begin SetSystemCursor(OldCursor, OCR_NORMAL); end; |