Часть кода как компонент

dixen18

Ветеран
Народ кто подскажет как можно реализовать исполнение функции SSinstall в виде чекбокса? Речь идет про утилиту очистки ОЗУ, которая у меня срабатывает принудительно а пользователи (некоторые) жалуются на фризы во время установки. Речь про этот кусок
Код:
begin
ExtractTemporaryFile('FFC.exe');
ShellExec('open', ExpandConstant ('{tmp}\FFC.exe'), '', '', SW_HIDE, ewNoWait, ErrorCode);
Sleep(2000); // не нужна просто баловство
end;
 

Nemko

Дилетант
Модератор
dixen18, может не так понял, но можно оттолкнуться:
Код:
[Setup]
AppName=Test
AppVersion=1.0
CreateAppDir=no

[Code*]
var
  MyCheckBox: TNewCheckBox;

function ClearRAM: Boolean;
var
  ErrorCode: Integer;
begin
  Result:=False;
  if not MyCheckBox.Checked then Exit else begin
    ExtractTemporaryFile('FFC.exe');
    Result:=ShellExec('open', ExpandConstant ('{tmp}\FFC.exe'), '', '', SW_HIDE, ewNoWait, ErrorCode);
  end;
end;

procedure CBClick(Obj: TObject);
begin
  ClearRAM;
end;

procedure InitializeWizard;
begin
  MyCheckBox:=TNewCheckBox.Create(nil);
  with MyCheckBox do begin
    SetBounds(ScaleX(32), ScaleY(328), ScaleX(97), ScaleY(17));
    Caption:= 'my_Test';
    Parent:= WizardForm;
    OnClick:=@CBClick;
  end;
end;
 

Nemko

Дилетант
Модератор
Andreo Fadio, думаю - константа, относящаяся к процедуре CurStepChanged. Думаю dixen18 хотел сказать, что очистка памяти будет выполнятся в момент установки и вызываться в процедуре CurStepChanged. Да и это вроде уже относится к теме разговора.
 

dixen18

Ветеран
@Nemko, Да именно так. Сейчас процедура очистки памяти (процесс FFC.exe) выполняется сразу после нажатия пункта УСТАНОВИТЬ. То есть перед собственно распаковкой ARC архива.
Вроде бы полезная вещь но некоторые пользователи жалуются на то что после очистки памяти их системы начинают дико лагать (оно и понятно почему). Таких пользователей немного но они есть. Вот я и подумал сделать эту функцию опциональной. Но беда в том что я в коде мало чего понимаю, поэтому и обратился к знатокам))
 
Сверху