ISDone

DLL ISDone 0.6 final

Нет прав для скачивания

Shift85

Старожил
ExPlayer,

Код:
procedure HideControls;
begin
//ISDoneProgressBar1.Hide;
end;

Procedure CurPageChanged(CurPageID: Integer);
begin
WizardForm.ProgressGauge.SetBounds(ScaleX(367), ScaleY(50), ScaleX(50), WizardForm.ProgressGauge.Height);
end;
end;

if CurStep = ssInstall then begin  
//WizardForm.ProgressGauge.Hide;
end;

if (CurStep=ssPostInstall) and ISDoneError then begin
ISDoneProgressBar1.Hide;
WizardForm.ProgressGauge.Hide;
end;
 
Последнее редактирование:

ExPlayer

Старожил
Shift85, Вот такая ерунда... 1.png 2.png

Может надо что-то отредактировать в процедуре "CreateControls", у меня там вот такой код:
procedure CreateControls;
var PBTop:integer;
begin
PBTop:=ScaleY(80); /// изменено старое значение - 50
ISDoneProgressBar1 := TNewProgressBar.Create(WizardForm);
with ISDoneProgressBar1 do begin
Parent := WizardForm.InstallingPage;
Height := WizardForm.ProgressGauge.Height;
Left := ScaleX(0);
Top := PBTop;
Width := ScaleX(365);
Max := 1000;
end;
LabelPct1 := TLabel.Create(WizardForm);
with LabelPct1 do begin
Parent := WizardForm.InstallingPage;
AutoSize := False;
Left := ISDoneProgressBar1.Width+ScaleX(5);
Top := ISDoneProgressBar1.Top + ScaleY(2);
Width := ScaleX(80);
end;
LabelCurrFileName := TLabel.Create(WizardForm);
with LabelCurrFileName do begin
Parent := WizardForm.InstallingPage;
AutoSize := False;
Width := ISDoneProgressBar1.Width+ScaleX(30);
Left := ScaleX(0);
Top := ScaleY(60); //изменено старое значение - 30
end;
#ifdef SecondProgressBar
PBTop:=PBTop+ScaleY(40); // изменено старое значение - 25
ISDoneProgressBar2 := TNewProgressBar.Create(WizardForm);
with ISDoneProgressBar2 do begin
Parent := WizardForm.InstallingPage;
Left := ScaleX(0);
Top := PBTop+ScaleY(8);
Width := ISDoneProgressBar1.Width;
Max := 1000;
Height := WizardForm.ProgressGauge.Height;
end;
LabelPct2 := TLabel.Create(WizardForm);
with LabelPct2 do begin
Parent := WizardForm.InstallingPage;
AutoSize := False;
Left := ISDoneProgressBar2.Width+ScaleX(5);
Top := ISDoneProgressBar2.Top + ScaleY(2);
Width := ScaleX(80);
end;
#endif
LabelTime1 := TLabel.Create(WizardForm);
with LabelTime1 do begin
Parent := WizardForm.InstallingPage;
AutoSize := False;
Width := ISDoneProgressBar1.Width div 2;
Left := ScaleX(0);
Top := PBTop + ScaleY(35);
end;
LabelTime2 := TLabel.Create(WizardForm);
with LabelTime2 do begin
Parent := WizardForm.InstallingPage;
AutoSize := False;
Width := LabelTime1.Width+ScaleX(40);
Left := ISDoneProgressBar1.Width div 2;
Top := LabelTime1.Top;
end;
LabelTime3 := TLabel.Create(WizardForm);
with LabelTime3 do begin
Parent := WizardForm.FinishedPage;
AutoSize := False;
Width := 300;
Left := 180;
Top := 200;
LabelTime3.Hide;
end;
MyCancelButton:=TButton.Create(WizardForm);
with MyCancelButton do begin
Parent:=WizardForm;
Width:=ScaleX(135);
Caption:=ExpandConstant('{cm:CancelButton}');
Left:=ScaleX(360);
Top:=WizardForm.cancelbutton.top;
OnClick:=@CancelButtonOnClick;
end;
end;
 

Shift85

Старожил
ExPlayer, В procedure CreateControls; по умолчанию все поставь...

Или координаты поменяй здесь:

Код:
WizardForm.ProgressGauge.SetBounds(ScaleX(слева),ScaleY(сверху),ScaleX(ширина),ScaleY(высота));
 
Последнее редактирование:

ExPlayer

Старожил
Shift85, поставил, результат не изменился... 0e1ef1fe61.png

Как я понимаю, у меня не скрыты тулбары от ISDone... хотя может я что-то не правильно понимаю...
 

ExPlayer

Старожил
Shift85, ооо, все работает, спасибо :) Единственное только хотел узнать, как в конце установки убрать/скрыть "Label", который показывает общее время установки? В коде он вроде бы скрыт, но все равно показывается:

if (CurPageID = wpFinished) and ISDoneError then
begin
LabelTime3.Hide;
 
Последнее редактирование:

ROMKA-1977

Новичок
Подскажите как в ISDone правильно указать пароль архива FreeArc ? Делаю как показанно в инструкции но во время распаковки вылетает ошибка:
Произошла ошибка при распаковке: Неверный пароль!
Unarc.dll вернул код ошибки: -13
ERROR: wrong password
Пароль указал тот же что и при архивации.
Пример:
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\Data-1.arc'), ExpandConstant('{app}\'), '', false, '1234', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
 

ROMKA-1977

Новичок
Заметил такую особенность в ISDone: на странице распаковки файлов кнопка закрытия окна не работает хотя и кликабельна. Возможно ли наложить на неё функцию кнопки "отмена распаковки" или сделать неактивной как на странице завершения установки ?
 

LexBell

Борода
Супер модератор
Возможно ли наложить на неё функцию кнопки "отмена распаковки"
В моем альтернативном модуле сделано именно так.
При этом стандартная кнопка отмены тоже работает так, как и должна работать, не требуя назначение на клик каких-либо дополнительных действий.
 

Вложения

Последнее редактирование:

ROMKA-1977

Новичок
Подскажите пож. прикрутил к скрипту с ISDone кастомнай чекбокс "Запустить приложение" на странице завершения установки. Работает всё отлично но проблема в том что при нажатии кнопки "Отмена" на финишной странице с ошибкой установки чекбокс также отображается. Как его отключить на финишной странице с ошибкой установки?
 
Последнее редактирование:

Silentman

Новичок
ROMKA-1977, примерно так:
Код:
Procedure CurPageChanged(CurPageID: Integer);
Begin
  if (CurPageID = wpFinished) and ISDoneError then
  begin
  customcheckbox.Hide;
  end;
 

ROMKA-1977

Новичок
ROMKA-1977, примерно так:
Так не получается.
Код моего чекбокса:
Код:
[Code]
var
  RunProgram: TCheckBox;
  RunProgramLabel: TLabel;

procedure LabelOnClick(Sender: TObject);
begin
  case Sender of
  RunProgramLabel: begin RunProgram.Checked:= not RunProgram.Checked; end;
end;
end;

procedure DeinitializeSetup();
var ResultCode: Integer;
begin
  if (WizardForm.CurPageID=wpFinished) and (RunProgram.Checked) then
  Exec(ExpandConstant('{app}\{#MyAppExeName}'), '', '', SW_SHOWNORMAL, ewNoWait, ResultCode);
end;

procedure InitializeWizard();
begin
RunProgram:= TCheckBox.Create(WizardForm);
with RunProgram do
begin
  Parent:= WizardForm.FinishedPage;
  SetBounds(ScaleX(85), ScaleY(111), ScaleX(13), ScaleY(13)) //Координаты чекбокса
  TabOrder:= 5;
  Checked:= False; //Если необходимо, можно поменять на True
end;

RunProgramLabel:= TLabel.Create(WizardForm);
with RunProgramLabel do
begin
  Caption:=ExpandConstant('{cm:RunEntryExec}');
  SetBounds(ScaleX(105), ScaleY(111), ScaleX(150), ScaleY(13)) //Координаты текста чекбокса
  Transparent := True;
  Parent:= WizardForm.FinishedPage;
  OnClick:= @LabelOnClick;
end;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  RunProgram.Hide; RunProgramLabel.Hide;
if CurPageId = wpFinished then
begin
  RunProgram.Show; RunProgramLabel.Show;
end;
end;
 
Последнее редактирование:
Сверху