Цитата:
спасибо вам хоть за какие-то ответы
Опиши какой именно скин, что требуется (в личку) а я ща твой пост пересмотрю.
Добавлено:
Кстати, Dobrov, через твою dll работает вот что[more]
[Setup]
AppName=NSIS
AppVerName=NSIS
DefaultDirName={pf}\NSIS
DefaultGroupName=NSIS
AllowNoIcons=yes
[Types]
Name: full; Description: Full installation
Name: compact; Description: Compact installation
Name: custom; Description: Custom installation; Flags: iscustom
[Components]
Name: program; Description: Program Files; Types: full compact custom; Flags: fixed
Name: help; Description: Help Contents; Types: full compact
Name: readme; Description: Read Me; Types: custom
Name: readme\en; Description: English; Flags: exclusive
Name: readme\ru; Description: Russian; Flags: exclusive
[Icons]
Name: {group}\NSIS; Filename: MakeNSIS.exe
[Files]
Source: descctrl.dll; Flags: dontcopy
[Messages]
SetupAppTitle=NSIS Setup
SetupWindowTitle=NSIS Setup
BeveledLabel= Nullsoft Install System
DiskSpaceMBLabel=Space requred: [mb] MB
ComponentsDiskSpaceMBLabel=Space required: [mb] MB
[LangOptions]
DialogFontName=Tahoma
[_Code]
function EnableDesc(ComponentsListHandle, DescLabelHandle: HWND; DescStrings: PChar): BOOL;
external 'enabledesc@files:descctrl.dll stdcall';
function disabledesc(): BOOL;
external 'disabledesc@files:descctrl.dll stdcall';
var
Bevel: TBevel;
FreeSpaceLabel: TLabel;
Panel: TPanel;
StartMenuTreeView: TStartMenuFolderTreeView;
Text1, Text2, Text3, Text4, Text5, Text6, Text7, Info: TNewStaticText;
procedure DeinitializeSetup();
Begin
disabledesc();
end;
procedure CurStepChanged(CurStep: TSetupStep);
Begin
if CurStep = ssInstall then disabledesc();
end;
procedure GetFreeSpaceCaption(Sender: TObject);
var
Path: string;
FreeMB, TotalMB: cardinal;
begin
Path:=ExtractFileDrive(WizardForm.DirEdit.Text);
GetSpaceOnDisk(Path, true, FreeMB, TotalMB);
if FreeMB > 1024 then
FreeSpaceLabel.Caption:='Space available:' + FloatToStr(round(FreeMB/1024*100)/100) + ' GB'
else
FreeSpaceLabel.Caption:='Space available:' + IntToStr(FreeMB) + ' MB'
end;
procedure StartMenuTreeViewOnClick(Sender: TObject);
begin
WizardForm.GroupEdit.Text:=addBackslash(StartMenuTreeView.Directory) + 'NSIS'
end;
procedure InitializeWizard();
begin
//страница выбора папки назначения
Text1:=TNewStaticText.Create(WizardForm);
Text1.Left:=ScaleX(0);
Text1.Top:=ScaleY(1);
Text1.Width:=ScaleX(417);
Text1.Height:=ScaleY(31);
Text1.AutoSize:=false;
Text1.WordWrap:=true;
Text1.Caption:='Setup will install NSIS in the following folder. To install a diffrent folder, click Browse and select another folder. Click Next to continue.';
Text1.Parent:=WizardForm.SelectDirPage;
Text2:=TNewStaticText.Create(WizardForm);
Text2.Left:=ScaleX(12);
Text2.Top:=ScaleY(114);
Text2.Font.Color:=clBlue;
Text2.Caption:='Destination folder';
Text2.Parent:=WizardForm.SelectDirPage;
Bevel:=TBevel.Create(WizardForm);
Bevel.Left:=ScaleX(0);
Bevel.Top:=ScaleY(120);
Bevel.Width:=ScaleX(417);
Bevel.Height:=ScaleY(50);
Bevel.Shape:=bsFrame;
Bevel.Parent:=WizardForm.SelectDirPage;
FreeSpaceLabel:=TLabel.Create(WizardForm);
FreeSpaceLabel.Left:=ScaleX(0);
FreeSpaceLabel.Top:=ScaleY(203);
FreeSpaceLabel.Width:=ScaleX(209);
FreeSpaceLabel.Height:=ScaleY(13);
FreeSpaceLabel.Enabled:=true;
FreeSpaceLabel.Parent:=WizardForm.SelectDirPage;
//страница выбора компонентов
Text3:=TNewStaticText.Create(WizardForm);
Text3.Left:=ScaleX(0);
Text3.Top:=ScaleY(1);
Text3.Width:=ScaleX(417);
Text3.Height:=ScaleY(31);
Text3.AutoSize:=false;
Text3.WordWrap:=true;
Text3.Caption:='Check the components you want to install and unckeck you do not want to install. Click Next to continue.';
Text3.Parent:=WizardForm.SelectComponentsPage;
Text4:=TNewStaticText.Create(WizardForm);
Text4.Left:=ScaleX(0);
Text4.Top:=ScaleY(39);
Text4.Width:=ScaleX(115);
Text4.Height:=ScaleY(19);
Text4.Caption:='Select type of install:';
Text4.Parent:=WizardForm.SelectComponentsPage;
Text5:=TNewStaticText.Create(WizardForm);
Text5.Left:=ScaleX(0);
Text5.Top:=ScaleY(61);
Text5.Width:=ScaleX(115);
Text5.Height:=ScaleY(87);
Text5.AutoSize:=false;
Text5.WordWrap:=true;
Text5.Caption:='Or select the optional components you wish to install:';
Text5.Parent:=WizardForm.SelectComponentsPage;
Panel:=TPanel.Create(WizardForm);
Panel.Left:=ScaleX(144);
Panel.Top:=ScaleY(173);
Panel.Width:=ScaleX(273);
Panel.Height:=ScaleY(53);
Panel.BevelInner:=bvLowered;
Panel.Parent:=WizardForm.SelectComponentsPage;
Text6:=TNewStaticText.Create(WizardForm);
Text6.Left:=ScaleX(151);
Text6.Top:=ScaleY(168);
Text6.Font.Color:=clBlue;
Text6.Caption:='Description';
Text6.Parent:=WizardForm.SelectComponentsPage;
//страница выбора папки меню пуск
Text7:=TNewStaticText.Create(WizardForm);
Text7.Left:=ScaleX(0);
Text7.Top:=ScaleY(1);
Text7.Width:=ScaleX(417);
Text7.Height:=ScaleY(31);
Text7.AutoSize:=false;
Text7.WordWrap:=true;
Text7.Caption:='Select the Start Menu folder in which you would like to create the program shortcuts. You can also enter a name to create a new folder.';
Text7.Parent:=WizardForm.SelectProgramGroupPage;
StartMenuTreeView:=TStartMenuFolderTreeView.Create(WizardForm);
StartMenuTreeView.Left:=ScaleX(0);
StartMenuTreeView.Top:=ScaleY(67);
StartMenuTreeView.Width:=ScaleX(417);
StartMenuTreeView.Height:=ScaleY(147);
StartMenuTreeView.OnChange:=@StartMenuTreeViewOnClick;
StartMenuTreeView.Parent:=WizardForm.SelectProgramGroupPage;
StartMenuTreeView.SetPaths(ExpandConstant('{userprograms}'), ExpandConstant('{commonprograms}'), ExpandConstant('{userstartup}'), ExpandConstant('{commonstartup}'));
//изменение местоположения элементов страниц мастера
//для страницы выбора папки назначения
WizardForm.SelectDirBrowseLabel.Hide;
WizardForm.SelectDirLabel.Hide;
WizardForm.DirEdit.Left:=ScaleX(9);
WizardForm.DirEdit.Top:=ScaleY(133);
WizardForm.DirEdit.Width:=ScaleX(305);
WizardForm.DirEdit.Height:=ScaleY(23);
WizardForm.DirEdit.OnChange:=@GetFreeSpaceCaption;
WizardForm.DirEdit.Text:=WizardForm.DirEdit.Text + #0;
WizardForm.DirBrowseButton.Left:=ScaleX(330);
WizardForm.DirBrowseButton.Top:=ScaleY(133);
WizardForm.DiskSpaceLabel.Top:=ScaleY(187);
//для страницы выбора компонентов
WizardForm.SelectComponentsLabel.Hide;
WizardForm.TypesCombo.Left:=ScaleX(144);
WizardForm.TypesCombo.Width:=ScaleX(273);
WizardForm.ComponentsList.Left:=ScaleX(144);
WizardForm.ComponentsList.Top:=ScaleY(61);
WizardForm.ComponentsList.Width:=ScaleX(273);
WizardForm.ComponentsList.Height:=ScaleY(107);
//здесь указывается изменение размера Lable
//при наведении на него курсора
WizardForm.ComponentsDiskSpaceLabel.Top:=ScaleY(173);
WizardForm.ComponentsDiskSpaceLabel.Width:=ScaleX(115);
WizardForm.ComponentsDiskSpaceLabel.Height:=ScaleY(87);
WizardForm.ComponentsDiskSpaceLabel.AutoSize:=false;
WizardForm.ComponentsDiskSpaceLabel.WordWrap:=true;
Info:=TNewStaticText.Create(WizardForm);
Info.Left:=ScaleX(151);
Info.Top:=ScaleY(185);
Info.Width:=ScaleX(265);
Info.Height:=ScaleY(31);
Info.AutoSize:=false;
Info.WordWrap:=true;
Info.Enabled:=false;
Info.Caption:='Position your mouse over a component to see its descrition.'
Info.Parent:=WizardForm.SelectComponentsPage;
//для страницы выбора папки меню пуск
WizardForm.SelectStartMenuFolderBrowseLabel.Hide;
WizardForm.SelectStartMenuFolderLabel.Hide;
WizardForm.GroupEdit.Top:=ScaleY(43);
WizardForm.GroupEdit.Width:=ScaleX(417);
WizardForm.GroupBrowseButton.Enabled:=false;
WizardForm.GroupBrowseButton.Visible:=false;
enabledesc(WizardForm.ComponentsList.Handle, WizardForm.ComponentsDiskSpaceLabel.Handle, 'Program Files that need to install for correct work;' + 'User Manual Help Contents;' + 'Read Me;' + 'English;' + 'Russian;');
end;
[/more]
Правда я так и не догнал, почему именно ComponentsDiskSpaceLabel должен меняться и почему его значение нельзя вставить в Panel. В Делфи я ничего такого так и не смог вспомнить.