PDA

Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 7]


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 [119] 120 121 122 123 124 125

nik1967
22-01-2015, 20:09
Возможно ли сделать так чтобы после закрытия окна с сообщением окно выбора директории не закрывалось.»
#define Name "Test"

[Setup]
SourceDir=.
OutputDir=Setup
AppName=Test
AppVerName=Test
DefaultDirName={pf}\Test
DefaultGroupName=Test
OutputBaseFilename=Setup
AllowNoIcons=true

[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl

[Files]
Source: {win}\help\*; DestDir: {app}\Files; Flags: external recursesubdirs createallsubdirs;

[Icons]
Name: {group}\MyProg; Filename: {app}; WorkingDir: {app}

[CustomMessages]
russian.RestoreButton=Сброс

[Code]
#define A = (Defined UNICODE) ? "W" : "A"

const
DRIVE_CDROM = 5;

var
BrowseForm: TSetupForm;
BrowseForm2: TSetupForm;
DirTreeView: TFolderTreeView;
DirFolderTreeView: TStartMenuFolderTreeView;
EditTreeView: TNewEdit;
EditFolderTreeView: TNewEdit;
DB_Button: TNewButton;
GB_Button: TNewButton;
OldEvent_NoIconsCheckClick: TNotifyEvent;
OKButton, ButtonNewFolder: TButton;

function GetDriveType(nDrive: string): Longint; external 'GetDriveType{#A}@kernel32.dll stdcall';

function CDROM(Drive: String): Boolean;
begin
Result:= GetDriveType(Drive) = 5;
end;

procedure GetDrive(Sender: TObject);
var
Path, Path1: String;
begin
Path:= ExtractFileDrive(DirTreeView.Directory);
Path1:= ExtractFileDrive(EditTreeView.Text);
ButtonNewFolder.Enabled:= not CDROM(Path);
OKButton.Enabled:= not CDROM(Path1);
if CDROM(Path1) then MsgBox('Установка на выбранный диск невозможна!', mbError, MB_OK);
end;

procedure DirTreeViewChange(Sender: TObject);
begin
if DirTreeView.Directory <> WizardForm.DirEdit.Text then begin
EditTreeView.Text := AddBackslash(DirTreeView.Directory) + '{#Name}';
GetDrive(nil);
end else
EditTreeView.Text := DirTreeView.Directory;
end;

procedure DirFolderTreeViewChange(Sender: TObject);
begin
if DirFolderTreeView.Directory <> WizardForm.GroupEdit.Text then
EditFolderTreeView.Text := AddBackslash(DirFolderTreeView.Directory) + '{#Name}' else
EditFolderTreeView.Text := DirFolderTreeView.Directory;
end;

procedure BrowseFormButtonsTreeViewOnClick(Sender: TObject);
begin
case TButton(Sender).Tag of
1: begin
EditTreeView.Text := RemoveBackslashUnlessRoot(ExpandConstant('{#SetupSetting("DefaultDirName")}'));
GetDrive(nil);
end;
2: begin
DirTreeView.CreateNewDirectory(SetupMessage(msgNewFolderName));
EditTreeView.Text := AddBackslash(DirTreeView.Directory) + '{#Name}';
end;

3: if EditTreeView.Text <> WizardForm.DirEdit.Text then WizardForm.DirEdit.Text := EditTreeView.Text;
end;
end;

procedure BrowseFormButtonsFolderTreeViewOnClick(Sender: TObject);
begin
case TButton(Sender).Tag of
4: EditFolderTreeView.Text := RemoveBackslashUnlessRoot(ExpandConstant('{#Name}'));

5: begin
DirFolderTreeView.CreateNewDirectory(SetupMessage(msgNewFolderName));
EditFolderTreeView.Text := AddBackslash(DirFolderTreeView.Directory) + '{#Name}';
end;

6: if EditFolderTreeView.Text <> WizardForm.GroupEdit.Text then WizardForm.GroupEdit.Text := EditFolderTreeView.Text;
end;
end;

procedure BrowseDirTreeViewClick(Sender: TObject);
begin
BrowseForm := CreateCustomForm();
with BrowseForm do
begin
Width := ScaleX(413);
Height := ScaleY(361);
Caption := SetupMessage(msgBrowseDialogTitle);
Position := poScreenCenter;

with TLabel.Create(nil) do
begin
SetBounds(ScaleX(12), ScaleY(12), ScaleX(207), ScaleY(16));
Caption := SetupMessage(msgBrowseDialogLabel);
Parent := BrowseForm;
Font.Size := 8;
end;

DirTreeView := TFolderTreeView.Create(nil)
with DirTreeView do
begin
SetBounds(ScaleX(16), ScaleY(64), ScaleX(375), ScaleY(225));
OnChange := @DirTreeViewChange;
Parent := BrowseForm;
end;

EditTreeView := TNewEdit.Create(nil);
with EditTreeView do
begin
SetBounds(ScaleX(16), ScaleY(36), ScaleX(376), ScaleY(21));
Text := DirTreeView.Directory;
Parent := BrowseForm;
Font.Color := clWindowText;
end;

with TButton.Create(nil) do
begin
SetBounds(ScaleX(16), ScaleY(301), ScaleX(90), ScaleX(23));
Parent := BrowseForm;
Caption := SetupMessage(msgButtonCancel);
ModalResult := mrCancel;
end;

with TButton.Create(nil) do
begin
SetBounds(ScaleX(111), ScaleY(301), ScaleX(90), ScaleY(23));
Parent := BrowseForm;
Caption := ExpandConstant('{cm:RestoreButton}');
Tag := 1;
OnClick := @BrowseFormButtonsTreeViewOnClick;
end;

ButtonNewFolder:= TButton.Create(nil)
with ButtonNewFolder do
begin
SetBounds(ScaleX(206), ScaleY(301), ScaleX(90), ScaleY(23));
Parent := BrowseForm;
Caption := SetupMessage(msgButtonNewFolder);
Tag := 2;
OnClick := @BrowseFormButtonsTreeViewOnClick;
end;

OKButton:= TButton.Create(nil);
with OKButton do
begin
SetBounds(ScaleX(301), ScaleY(301), ScaleX(90), ScaleY(23));
Parent := BrowseForm;
Caption := SetupMessage(msgButtonOK);
Tag := 3;
OnClick := @BrowseFormButtonsTreeViewOnClick;
ModalResult := mrOk;
end;

DirTreeView.ChangeDirectory(AddBackslash(WizardForm.DirEdit.Text), True);
ShowModal;
Free;
end;
end;

procedure BrowseDirFolderTreeViewClick(Sender: TObject);
begin
BrowseForm2 := CreateCustomForm();
with BrowseForm2 do
begin
Width := ScaleX(413);
Height := ScaleY(361);
Caption := SetupMessage(msgBrowseDialogTitle);
Position := poScreenCenter;

with TLabel.Create(nil) do
begin
SetBounds(ScaleX(12), ScaleY(12), ScaleX(207), ScaleY(16));
Caption := SetupMessage(msgBrowseDialogLabel);
Parent := BrowseForm2;
Font.Size := 8;
end;

DirFolderTreeView := TStartMenuFolderTreeView.Create(nil)
with DirFolderTreeView do
begin
SetBounds(ScaleX(16), ScaleY(64), ScaleX(375), ScaleY(225));
SetPaths(ExpandConstant('{userprograms}'),ExpandConstant('{commonprograms}'),ExpandConstant('{userst artup}'),ExpandConstant('{commonstartup}'));
OnChange := @DirFolderTreeViewChange;
Parent := BrowseForm2;
end;

EditFolderTreeView := TNewEdit.Create(nil);
with EditFolderTreeView do
begin
SetBounds(ScaleX(16), ScaleY(36), ScaleX(376), ScaleY(21));
Text := DirFolderTreeView.Directory;
Parent := BrowseForm2;
Font.Color := clWindowText;
end;

with TButton.Create(nil) do
begin
SetBounds(ScaleX(16), ScaleY(301), ScaleX(90), ScaleX(23));
Parent := BrowseForm2;
Caption := SetupMessage(msgButtonCancel);
ModalResult := mrCancel;
end;

with TButton.Create(nil) do
begin
SetBounds(ScaleX(111), ScaleY(301), ScaleX(90), ScaleY(23));
Parent := BrowseForm2;
Caption := ExpandConstant('{cm:RestoreButton}');
Tag := 4;
OnClick := @BrowseFormButtonsFolderTreeViewOnClick;
end;

with TButton.Create(nil) do
begin
SetBounds(ScaleX(206), ScaleY(301), ScaleX(90), ScaleY(23));
Parent := BrowseForm2;
Caption := SetupMessage(msgButtonNewFolder);
Tag := 5;
OnClick := @BrowseFormButtonsFolderTreeViewOnClick;
end;

with TButton.Create(nil) do
begin
SetBounds(ScaleX(301), ScaleY(301), ScaleX(90), ScaleY(23));
Parent := BrowseForm2;
Caption := SetupMessage(msgButtonOK);
Tag := 6;
OnClick := @BrowseFormButtonsFolderTreeViewOnClick;
ModalResult := mrOk;
end;

DirFolderTreeView.ChangeDirectory(AddBackslash(WizardForm.GroupEdit.Text), True);
ShowModal;
Free;
end;
end;

procedure NoIconsCheckClick(Sender: TObject);
begin
OldEvent_NoIconsCheckClick(Sender);
GB_Button.Enabled := not WizardForm.NoIconsCheck.Checked;
end;

procedure InitializeWizard();
begin
OldEvent_NoIconsCheckClick := WizardForm.NoIconsCheck.OnClick;
WizardForm.NoIconsCheck.OnClick := @NoIconsCheckClick;

WizardForm.DirBrowseButton.Hide;
DB_Button := TNewButton.create(WizardForm);
with DB_Button do
begin
Parent := WizardForm.SelectDirPage;
SetBounds(WizardForm.DirBrowseButton.Left, WizardForm.DirBrowseButton.Top, WizardForm.DirBrowseButton.Width, WizardForm.DirBrowseButton.Height - ScaleY(1));
Caption := SetupMessage(msgButtonBrowse);
OnClick := @BrowseDirTreeViewClick;
end;

WizardForm.GroupBrowseButton.Hide;
GB_Button := TNewButton.create(WizardForm);
with GB_Button do
begin
Parent := WizardForm.SelectProgramGroupPage;
SetBounds(WizardForm.GroupBrowseButton.Left, WizardForm.GroupBrowseButton.Top, WizardForm.GroupBrowseButton.Width, WizardForm.GroupBrowseButton.Height - ScaleY(1));
Caption := SetupMessage(msgButtonBrowse);
OnClick := @BrowseDirFolderTreeViewClick;
end;
end;

kotyarko@fb
22-01-2015, 20:34
ето вот ета форма? »
Нет. Это только ссылание на процедуру создания. Сама процедура это то, что идёт после символа "@".

Юрій_Окропірідзе@vk
22-01-2015, 20:48
Цитата kotyarko@fb:
Нет. Это только ссылание на процедуру создания. Сама процедура это то, что идёт после символа "@". »
Вот етот скрипт , я немогу понят где та процедура , я его перелопатил , некоторые процедури к себе скопировал , но так нечего не изменилось , я не понимаю в чем может быть проблема
[code]
var
pb, pb1: Longint;
WFButtonFont, UPFButtonFont: TFont;
CurrentImage, ProgressStep: integer;
mp3Name, OldDisk, TimeLeft: string;
w1, w2, w3,w4,w5, w6, w7: Longint;
Welcome, System, Catalogue, StartMenu, Tasks, Installing, Finish, Uninstalling,
PageNameLabel, PageDescriptionLabel,
WelcomeLabel1, WelcomeLabel2,
RequirementsLbl, ProcessorLbl, VideoCardLbl, SoundCardLbl, RAMLbl, SystemLbl,
ProcessorNameLbl, VideoCardNameLbl, SoundCardNameLbl, RAMTotalLbl, SystemNameLbl,

SelectDirBrowseLabel, DirEditLabel, TotalSpaceLabel, NeedSpaceLabel, FreeSpaceLabel,
SelectStartMenuFolderBrowseLabel, GroupEditLabel, NoIconsLabel,
SelectTasksLabel, DesktopLabel, QuickLaunchLabel, DirectXLabel, LanguageLabel, LngNameLbl,
FilenameLabel, StatusLabel, ProgressInfoLabel,
FinishedHeadingLabel, FinishedLabel,
WizardUninstLabel, UninstPageDescriptLabel, StatusUninstLabel : TLabel;
function InitializeSetup: Boolean;
begin
ExtractTemporaryFile('botva2.dll');
ExtractTemporaryFile('Click.wav');
ExtractTemporaryFile('isskin.dll');
ExtractTemporaryFile('Tiger.cjstyles');

LoadSkin(ExpandConstant('{tmp}\Tiger.cjstyles'), '');
Result:=True;
end;

procedure CreateWizardImage;
var
i: integer;
begin
WizardForm.ClientWidth:=ScaleX(877);
WizardForm.ClientHeight:=ScaleY(485);
WizardForm.Center;
WizardForm.BorderStyle := bsDialog;
WizardForm.OuterNotebook.Hide;
WizardForm.InnerNotebook.Hide;
WizardForm.Bevel.Hide;

ExtractTemporaryFile('WizardImage.jpg');
ExtractTemporaryFile('button.png');
ExtractTemporaryFile('buttonNext.png');
ExtractTemporaryFile('buttonBack.png');
ExtractTemporaryFile('buttonCancel.png');
ExtractTemporaryFile('buttonBrowse.png');
ExtractTemporaryFile('buttonInstall.png');
ExtractTemporaryFile('buttonEnd.png');
ExtractTemporaryFile('MusicButton.png');
ExtractTemporaryFile('RequirementsPanel.png');
ExtractTemporaryFile('Edit.png');
ExtractTemporaryFile('DirFolder.png');
ExtractTemporaryFile('HardDrivePanel.png');
ExtractTemporaryFile('HDD.png');
ExtractTemporaryFile('GroupFolder.png');
ExtractTemporaryFile('CheckBox.png');
ExtractTemporaryFile('ProgressBackground.png');
ExtractTemporaryFile('ProgressImg.png');
ExtractTemporaryFile('INF.png');
ExtractTemporaryFile('back.png');

ExtractTemporaryFile('w1.png');
ExtractTemporaryFile('w2.png');
ExtractTemporaryFile('w3.png');
ExtractTemporaryFile('w4.png');
ExtractTemporaryFile('w5.png');
ExtractTemporaryFile('w6.png');
ExtractTemporaryFile('w7.png');

ExtractTemporaryFile('WFEnter.wav');
ExtractTemporaryFile('Check.wav');
ExtractTemporaryFile('Music.ogg');
ExtractTemporaryFile('BASS.dll');
ExtractTemporaryFile('LogoButton.png');


WizardImg:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\WizardImage.jpg'),ScaleX(0),ScaleY(0),Wiz ardForm.ClientWidth,WizardForm.ClientHeight,True,True);

SetArrayLength(AImg,5);
for i:=0 to GetArrayLength(AImg)-1 do begin
AImg[i]:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\'+IntToStr(i+1)+'.jpg'),0,0,WizardForm.ClientWidth ,WizardForm.ClientHeight,True,True);
ImgSetVisibility(AImg[i],False);
end;


(*w1:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\w1.png'),ScaleX(0), ScaleY(0),WizardForm.ClientWidth,WizardForm.ClientHeight,True,True);
w2:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\w2.png'),ScaleX(0), ScaleY(0),WizardForm.ClientWidth,WizardForm.ClientHeight,True,True);
w3:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\w3.png'),ScaleX(0), ScaleY(0),WizardForm.ClientWidth,WizardForm.ClientHeight,True,True);
w4:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\w4.png'),ScaleX(0), ScaleY(0),WizardForm.ClientWidth,WizardForm.ClientHeight,True,True);
w5:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\w5.png'),ScaleX(0), ScaleY(0),WizardForm.ClientWidth,WizardForm.ClientHeight,True,True);
w6:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\w6.png'),ScaleX(0), ScaleY(0),WizardForm.ClientWidth,WizardForm.ClientHeight,True,True);
w7:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\w7.png'),ScaleX(0), ScaleY(0),WizardForm.ClientWidth,WizardForm.ClientHeight,True,True); *)

Logo:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\INF.png'),ScaleX(0), ScaleY(0),WizardForm.ClientWidth,WizardForm.ClientHeight,False,false);
ImgSetVisibility(logo,false); ////


(* ImgSetVisibility(w1,False);
ImgSetVisibility(w2,False);
ImgSetVisibility(w3,False);
ImgSetVisibility(w4,False);
ImgSetVisibility(w5,False);
ImgSetVisibility(w6,False);
ImgSetVisibility(w7,False); *)

ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\back.png'),ScaleX(0), ScaleY(0),877,485,True,True);
(*RequirementsPanel:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\RequirementsPanel.png'),ScaleX( 75), ScaleY(0),ScaleX(700),ScaleY(485),True,True);
Edit:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\Edit.png'),ScaleX(307), ScaleY(240),ScaleX(420),ScaleY(22),True,True);
DirFolder:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\DirFolder.png'),ScaleX(233), ScaleY(215),ScaleX(80),ScaleY(80),True,True);
HardDrivePanel:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\HardDrivePanel.png'),ScaleX(307), ScaleY(283),ScaleX(420),ScaleY(70),True,True);
HDD:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\HDD.png'),ScaleX(243), ScaleY(283),ScaleX(60),ScaleY(74),True,True);
GroupFolder:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\GroupFolder.png'),ScaleX(223), ScaleY(210),ScaleX(80),ScaleY(80),True,True);*)

ImgApplyChanges(WizardForm.Handle);
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.NextButton do begin
BtnSetText(NextBtn,PAnsiChar(Caption));
BtnSetVisibility(NextBtn,Visible);
BtnSetEnabled(NextBtn,Enabled);
end;

with WizardForm.NextButton do begin
BtnSetText(Next2Btn,PAnsiChar(Caption));
BtnSetVisibility(Next2Btn,Visible);
BtnSetEnabled(Next2Btn,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;
NextBtn: Btn:=WizardForm.NextButton;
Next2Btn: 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 LogoClick(hBtn:HWND);
var
Check:boolean;
begin
Check:=BtnGetChecked(hBtn);
sndPlaySound(ExpandConstant('{tmp}\Click.wav'),$0001);
Check:=BtnGetChecked(hBtn);
BtnSetEnabled(hBackBtn, not Check);
BtnSetEnabled(hNextBtn, not Check);
BtnSetEnabled(NextBtn, not Check);
BtnSetEnabled(Next2Btn, not Check);
BtnSetEnabled(hCancelBtn, not Check);
BtnSetEnabled(hDirBrowseBtn, not Check);
BtnSetEnabled(hGroupBrowseBtn, not Check);
BtnSetEnabled(QuickLaunchCheck, not Check);
BtnSetEnabled(DesktopCheck, not Check);
BtnSetEnabled(NoIconsCheck, not Check);
BtnSetEnabled(MusicButton, not Check);
ImgSetVisibility(Logo, not ImgGetVisibility(Logo));
ImgApplyChanges(WizardForm.Handle);
end;

procedure ButtonsTextures;
begin
WFButtonFont:=TFont.Create;
WFButtonFont.Style:=[fsBold];

(* with WizardForm.BackButton do begin
hBackBtn:=BtnCreate(WizardForm.Handle,Left+285,Top+110,Width+31,Height+16,ExpandConstant('{tmp}\butt onBack.png'),18,False);
BtnSetEvent(hBackBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1));
BtnSetEvent(hBackBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetFont(hBackBtn,WFButtonFont.Handle);
BtnSetFontColor(hBackBtn,$FFFFFF,$FFFFFF,$FFFFFF,$B6B6B6);
BtnSetCursor(hBackBtn,GetSysCursorHandle(32649));
Width:=0;
Height:=0;
end;

with WizardForm.NextButton do begin
hNextBtn:=BtnCreate(WizardForm.Handle,Left+312,Top+110,Width+31,Height+16,ExpandConstant('{tmp}\butt onNext.png'),18,False);
BtnSetEvent(hNextBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1));
BtnSetEvent(hNextBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetFont(hNextBtn,WFButtonFont.Handle);
BtnSetFontColor(hNextBtn,$FFFFFF,$FFFFFF,$FFFFFF,$B6B6B6);
BtnSetCursor(hNextBtn,GetSysCursorHandle(32649));
Width:=0;
Height:=0;
end;

with WizardForm.NextButton do begin
NextBtn:=BtnCreate(WizardForm.Handle,Left+676767,Top+110,Width+106,Height+39,ExpandConstant('{tmp}\b uttonInstall.png'),18,False);
BtnSetEvent(NextBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1));
BtnSetEvent(NextBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetFont(NextBtn,WFButtonFont.Handle);
BtnSetFontColor(NextBtn,$FFFFFF,$FFFFFF,$FFFFFF,$B6B6B6);
BtnSetCursor(NextBtn,GetSysCursorHandle(32649));
Width:=0;
Height:=0;
end;

with WizardForm.NextButton do begin
Next2Btn:=BtnCreate(WizardForm.Handle,Left+676767,Top+110,Width+106,Height+39,ExpandConstant('{tmp}\ buttonEnd.png'),18,False);
BtnSetEvent(Next2Btn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1));
BtnSetEvent(Next2Btn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetFont(Next2Btn,WFButtonFont.Handle);
BtnSetFontColor(Next2Btn,$FFFFFF,$FFFFFF,$FFFFFF,$B6B6B6);
BtnSetCursor(Next2Btn,GetSysCursorHandle(32649));
Width:=0;
Height:=0;
end;

with WizardForm.CancelButton do begin
hCancelBtn:=BtnCreate(WizardForm.Handle,Left+335,Top+110,Width+31,Height+16,ExpandConstant('{tmp}\bu ttonCancel.png'),18,False);
BtnSetEvent(hCancelBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1));
BtnSetEvent(hCancelBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetFont(hCancelBtn,WFButtonFont.Handle);
BtnSetFontColor(hCancelBtn,$FFFFFF,$FFFFFF,$FFFFFF,$B6B6B6);
BtnSetCursor(hCancelBtn,GetSysCursorHandle(32649));
Width:=0;
Height:=0;
end; *)

INFBtn:=BtnCreate(WizardForm.Handle,ScaleX(40), ScaleY(435), ScaleX(120), ScaleY(45),ExpandConstant('{tmp}\LogoButton.png'),0,True);
BtnSetEvent(INFbtn,BtnClickEventID,WrapBtnCallback(@LogoClick,4));
BtnSetEvent(INFBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1));
BtnSetCursor(INFBtn,GetSysCursorHandle(32649));

InfBtnt:=BtnCreate(WizardForm.Handle,ScaleX(40), ScaleY(435), ScaleX(120), ScaleY(45),ExpandConstant('{tmp}\LogoButton.png'),0,True);
BtnSetEvent(INFbtn,BtnClickEventID,WrapBtnCallback(@LogoClick,4));
BtnSetEvent(INFBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1));
BtnSetCursor(INFBtn,GetSysCursorHandle(32649));

(* with WizardForm.DirBrowseButton do begin
hDirBrowseBtn:=BtnCreate(WizardForm.Handle,Left+398,Top+150,Width+31,Height+16,ExpandConstant('{tmp} \buttonBrowse.png'),18,False);
BtnSetEvent(hDirBrowseBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1));
BtnSetEvent(hDirBrowseBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetFont(hDirBrowseBtn,WFButtonFont.Handle);
BtnSetFontColor(hDirBrowseBtn,$FFFFFF,$FFFFFF,$FFFFFF,$B6B6B6);
BtnSetCursor(hDirBrowseBtn,GetSysCursorHandle(32649));
Width:=0;
Height:=0;
end;

with WizardForm.GroupBrowseButton do begin
hGroupBrowseBtn:=BtnCreate(WizardForm.Handle,Left+398,Top+150,Width+31,Height+16,ExpandConstant('{tm p}\buttonBrowse.png'),18,False);
BtnSetEvent(hGroupBrowseBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1));
BtnSetEvent(hGroupBrowseBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetFont(hGroupBrowseBtn,WFButtonFont.Handle);
BtnSetFontColor(hGroupBrowseBtn,$FFFFFF,$FFFFFF,$FFFFFF,$B6B6B6);
BtnSetCursor(hGroupBrowseBtn,GetSysCursorHandle(32649));
Width:=0;
Height:=0;
end; *)
end;

Юрий_Онищенко@vk
24-01-2015, 00:55
Здрастуйте , в чем может быть проблема
http://forum.oszone.net/attachment.php?attachmentid=121412&stc=1&d=1422050080

sergey3695
24-01-2015, 13:12
Юрий_Онищенко@vk, винду активируй :laugh:
Неизвестный идентификатор "ImgLoad" - и что не понятного? b2p.iss или botva2.iss поищи там раскомменти #include "_".
Судя по коду выше у тебя нету этого.
narod.ru/disk/7844037001/botva2_0.9.5.130.7z.html (http://forum.oszone.net/narod.ru/disk/7844037001/botva2_0.9.5.130.7z.html)
оттуда возьми. там и примеры и библа и примеры

Юрий_Онищенко@vk
24-01-2015, 13:32
Цитата sergey3695:
винду активируй
Неизвестный идентификатор "ImgLoad" - и что не понятного? b2p.iss или botva2.iss поищи там раскомменти #include "_".
Судя по коду выше у тебя нету этого.
narod.ru/disk/7844037001/botva2_0.9.5.130.7z.html »
Ахаха , вина подождет , окно прозрачное и мне не мешает))), с ImgLoag , я розобрался еще вчера. Я конешно понимаю что я етот форм уже задолбал с етим вопросом , но уж больно немогу понять именно етот момент с картинкой. Вот вы прислали код , но теперь у меня другой вопрос , как ето превьязать к любой кнопке. Я пытался в етом коде розобраться , но там все процедуры розрошенны , и не используеться модуль ботви. И вы же рание кидаль мне готовый скрипт , я пробывал розобраться , но так и не понял как его превьязать к кнопке function InitializeSetup:boolean;
begin
if not FileExists(ExpandConstant('{tmp}\botva2.dll')) then ExtractTemporaryFile('botva2.dll');
if not FileExists(ExpandConstant('{tmp}\1.png')) then ExtractTemporaryFile('1.png');
Result:=True;
end;

#ifdef UNICODE
#define A "W"
#else
#define A "A"
#endif

const
GWL_WNDPROC = -4;
WM_NCLBUTTONDOWN = $00A1;
type
LPARAM = Integer;
WPARAM = Integer;
LRESULT = Integer;
TFNWndProc = Integer;
var
OldWindowProc: Longint;

function SetWindowLong(hWnd: HWND; nIndex: Integer; dwNewLong: Longint): Longint; external 'SetWindowLong{#A}@user32.dll stdcall';
function CallWindowProc(lpPrevWndFunc: TFNWndProc; hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; external 'CallWindowProc{#A}@user32.dll stdcall';

function WindowProc(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT;
begin
case Msg of
WM_NCLBUTTONDOWN:
begin
Msg := 0;
WizardForm.Close;
end;
end;
Result := CallWindowProc(OldWindowProc, hWnd, Msg, wParam, lParam);
end;

procedure CloseForm(Sender: TObject);
begin
WizardForm.Close;
end;

procedure InitializeWizard;
begin
CreateFormFromImage(wizardform.Handle,ExpandConstant('{tmp}\1.png'));
ImgApplyChanges(WizardForm.Handle);
OldWindowProc := SetWindowLong(WizardForm.Handle, GWL_WNDPROC, CallbackAddr('WindowProc'));
end;

procedure DeinitializeSetup();
begin
SetWindowlong(WizardForm.Handle, GWL_WNDPROC, OldWindowProc);
gdipShutdown;
end;

sergey3695
24-01-2015, 16:24
Юрий_Онищенко@vk, а я вот не пойму там один ник, теперь такой. понаделал акков.
к какой кнопке? (большой и красной). я ж тебе давал пример на кринкелс с кнопкой, что там непонятно?

Юрий_Онищенко@vk
24-01-2015, 17:11
, а я вот не пойму там один ник, теперь такой. понаделал акков.
к какой кнопке? (большой и красной). я ж тебе давал пример на кринкелс с кнопкой, что там непонятно? »
Ники менял потому что они были привязанные к вк , а он у меня взлман
По началу вопрос был как вы привзязали ету процидуру к кнопке , но я потом викупил етот вопрос, я немного изменил код но теперь вот такая ошибка , не подскажете в чем может быть проблема?
И еще можна как то сделать что б форма закрывалась не в углу скритой кнопкой закрить , а нажатием на туже кнопку что окривала ету форму?

http://forum.oszone.net/attachment.php?attachmentid=121427&stc=1&d=1422108545

sergey3695
24-01-2015, 17:16
Юрий_Онищенко@vk, кинь код (на файлобменик с файлами) что сделал, напиши что надо. я переделаю и скину.

Юрий_Онищенко@vk
24-01-2015, 17:27
кинь код (на файлобменик с файлами) что сделал, напиши что надо. я переделаю и скину. »
я вам скину пример и сам скрипт https://yadi.sk/d/t2Yx2aq1eCz5z

sergey3695
24-01-2015, 18:24
Юрий_Онищенко@vk, https://yadi.sk/d/l-SdcyXoeD4CC как-то так.

Юрий_Онищенко@vk
24-01-2015, 19:35
https://yadi.sk/d/l-SdcyXoeD4CC как-то так. »
еее, так то был пример , ну откуда я взял ету идею, просто я все закоментировал что б знать что за что отвечает

sergey3695
24-01-2015, 20:06
Юрий_Онищенко@vk, :jester: кнопка инфо как надо работает. не пиши чушь.

Юрий_Онищенко@vk
24-01-2015, 20:17
кнопка инфо как надо работает. не пиши чушь. »
она да , а вот в новой папке 4 , при закритии видает ошибку

кнопка инфо как надо работает. не пиши чушь. »
я б вам показал на своем скрипте , но тут возникла иная ошибка , може исправлю и покажу

Okta_333
25-01-2015, 13:11
Здравия всем! А к кому можно обратиться за помощью. Не могу понять ошибку в своём скрипте.

Dodakaedr
25-01-2015, 15:56
Опишить ошибку, по возможности предоставте скрипт или скриншотскриншот. Знающие люди подскажут в чем проблема...

Shift85
25-01-2015, 17:43
Здравия всем! А к кому можно обратиться за помощью. Не могу понять ошибку в своём скрипте. »
1-Опиши ошибку. :read:
2-Скрип в студию. :whitevoid:

Okta_333
25-01-2015, 18:50
С той проблемой разобралась.
Подскажите пожалуйста как правильно в IsDone прописать пароль к arc-архиву.

Shift85
25-01-2015, 18:56
Подскажите пожалуйста как правильно в IsDone прописать пароль к arc-архиву. »
Okta_333, Типа так:

if not ISArcExtract ( 0, 0, ExpandConstant('{src}\*.arc'), ExpandConstant('{app}'), '', false, 'Пароль', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;

Okta_333
25-01-2015, 19:23
У меня немного другая строчка:

if not ISArcExtract ( 0, 0, ExpandConstant('{src}\D-3.arc'), ExpandConstant('{app}\'), false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;


Как вы написали - ругается (Invalid Numbers of Parameters)




© OSzone.net 2001-2012