urban
Старожил
кто-то может через ботву вставить картинку на все страници инсталла (1.bmp)
http://rghost.ru/46736064
http://rghost.ru/46736064
Было бы так просто!перенесли флаг с компонентов к задачам
[Components]
Name: a; Description: Главный компонент; Types: full; Flags: collapsed
Name: a\1; Description: Исключительный компонент; Types: custom; Flags: exclusive
Name: a\2; Description: Компонент; Types: custom
[C[B][/B]ode]
procedure InitializeWizard();
begin
WizardForm.ComponentsList.TreeViewStyle := True;
end;
А сейчас не понял!попробуй добавить тип установки к таск
Devils Night, перенеси флаг с компонентов к задачам
не пиши бред. и меня запутал и человека.Devils NightDevils Night, попробуй добавить тип установки к таск
на TaskList ты так не сделаешь. можешь сделать TNewCheckListBox с компанентами на созданной потом доп. странице.Подскажите, как сделать тоже самое на задачах?
я сначала как-то не вчитывался,написал первое что в голову пришло. где баг то,я на скрине ничего не вижу.По поводу скрытия компонентов:
Недавно на Win7 увидел тот баг о чём писал Gnom.
Пока замечал только на семёрке. Действительно отображается криво.
Из наблюдений выяснил то, что, всё дело в темах. В стандартной виндовой теме отображается нормально, а вот в некоторых других, уже не корректно. На XP такого бага не замечал, как в стандартной теме, так и в не подписанных.
И если оно всё действительно так, то либо использовать ISSkin, либо не использовать сторонние темы, либо не использовать данную функцию скрытия, либо портировать код.
Так что c W7 не понятно, либо винда кривая, либо темы.
Ой блин, это получается заново делать страницу, навешивать чекбосы, прочую ересь и только тогда будет это скрытие, так что ли!?можешь сделать TNewCheckListBox с компанентами на созданной потом доп. странице.
На скрине ничего и нету. Скрин для того чтоб было понятно о чём речь идёт в кратце. А баг появляется в некоторых темах на Win7.где баг то,я на скрине ничего не вижу.
procedure InitializeWizard();
begin
WizardForm.TypesCombo.hide;
WizardForm.TasksList.hide;
WizardForm.ComponentsList.Checked[2]:=True
with WizardForm.ComponentsList do
begin
WantTabs := True;
BorderStyle := bsNone;
Color := clMenu;
WizardForm.ComponentsList.Parent := WizardForm.SelectTasksPage;
TreeViewStyle := True;
Top:=50;
end;
end;
function ShouldSkipPage(PageID: Integer): Boolean;
begin
if (PageID = 7) then
Result:= True;
end;[/SPOILER]
Вот что я смог сделать на Tasks но возникла проблема у него нету Flags: collapsed сворачивание дочерних компонентов но есть у компонентов
[SPOILER="пример"][Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
[Tasks]
Name: a; Description: Главный компонент; Flags: ;
Name: a\1; Description: Исключительный компонент; Flags: exclusive;
Name: a\2; Description: Компонент;
[Code]
procedure InitializeWizard();
begin
with WizardForm.TasksList do
begin
ShowLines := True;
TreeViewStyle := True;
end;
end;[/SPOILER]
Это я уже заметил.но возникла проблема у него нету Flags: collapsed
А стоит ли?как вынести прогресс бар на самый низ,там где кнопка отмены?
[C[B][/B]ode]
procedure InitializeWizard();
begin
WizardForm.ProgressGauge.Parent := WizardForm;
WizardForm.ProgressGauge.Left := ScaleX(10);
WizardForm.ProgressGauge.Top := ScaleY(327);
WizardForm.ProgressGauge.Width := ScaleX(220);
WizardForm.ProgressGauge.Height := ScaleY(23);
end;
var
StatLabel: TLabel;
type
TTimerProc=procedure(h:longword; msg:longword; idevent:longword; dwTime:longword);
function SetTimer(hWnd: longword; nIDEvent, uElapse: longword; lpTimerFunc: longword): longword; external 'SetTimer@user32.dll stdcall';
function wsprintf( a:ansistring; b:ansistring; c:TTimerProc ): longword; external 'wsprintfA@user32.dll cdecl';
function memcpy( a:longword; c:ansistring; l:longword ): longword; external 'memcpy@msvcrt.dll cdecl';
function VirtualAlloc( a:longword; b:longword; c:longword; d:longword ): longword; external 'VirtualAlloc@kernel32.dll stdcall';
function sh_wrap( u: TTimerProc ): longword;
var
x,y,cb: longword;
s: ansistring;
begin
SetLength( s, 256 );
wsprintf( s, '%i %i;', u );
x := StrToInt( Copy(s,1,Pos(' ',s)-1) );
Delete( s, 1, Pos(' ',s) );
y := StrToInt( Copy(s,1,Pos(';',s)-1) );
s := chr(85)+chr(139)+chr(236)+chr(104)+chr(x)+chr(x shr 8)+chr(x shr 16)+chr(x shr 24)+chr(139)+chr(85)+chr(8)+chr(139)+chr(77)+chr(12)+chr(255)+chr(181)+chr(16)+chr(0)+chr(0)+chr(0)+chr(255)+chr(181)+chr(20)+chr(0)+chr(0)+chr(0)+chr(184)+chr(y)+chr(y shr 8)+chr(y shr 16)+chr(y shr 24)+chr(255)+chr(85)+chr(252)+chr(90)+chr(93)+chr(194)+chr(16)+chr(0);
cb := VirtualAlloc( 0, $2000, $1000, $40 );
memcpy( cb, s, Length(s) );
result := cb;
end;
Procedure mytimerproc1(h:longword; msg:longword; idevent:longword; dwTime:longword);
Begin
StatLabel.Caption:=WizardForm.FileNamelabel.Caption;
End;
procedure InitializeWizard();
begin
StatLabel:= TLabel.Create(WizardForm);
StatLabel.Parent:= WizardForm.InstallingPage;
StatLabel.AutoSize:= true;
StatLabel.SetBounds(ScaleX(20), ScaleY(100), ScaleX(250), ScaleY(18));
StatLabel.Transparent:= true;
StatLabel.WordWrap:= false;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID=wpInstalling
then
begin
WizardForm.FileNamelabel.Hide;
settimer(0,0,1,sh_wrap(@mytimerproc1));
end;
end;
Как сделать поясниБахытжан реестер как бє может не вставил в скрипт