Вопрос Показ\скрытие чекбокса в зависимости от наличия файла

Хамик

Старожил
Подскажите, как реализовать следующее: при наличии файла в папке {app} показывать чекбокс, а при отсутствии файла скрывать его. Именно на странице wpSelectDir. Вот начатый пример:
Код:
[Setup]
AppName=1
AppVersion=1
DefaultDirName={pf}\Windows Media Player
DefaultGroupName=1
OutputDir=.

[Code]
var
  Btn: TNewCheckBox;

procedure CheckBtn(Sender:Tobject);
//procedure CheckBtn;
begin
    if FileExists(ExpandConstant( '{app}\wmplayer.exe' ))
   // If (FileSearch('wmplayer.exe', ExpandConstant('{app}'))='')
    then begin Btn.Show; Btn.Checked := True; end
    else begin Btn.Hide; Btn.Checked := False; end;
end;

procedure RedesignWizardForm;
begin
  Btn := TNewCheckBox.Create(WizardForm);
  Btn.Caption := 'Hello!';
  Btn.Parent := WizardForm.SelectDirPage;
  Btn.SetBounds(0,110,70,17);
end;

procedure InitializeWizard();
begin
  RedesignWizardForm;
  //WizardForm.DirEdit.OnChange := @CheckBtn;
end;

//procedure CurPageChanged(CurPageID: Integer);
//begin
//  if CurPageID = wpSelectDir then CheckBtn;
//end;

//function NextButtonClick(CurPageID: Integer): Boolean;
//begin
//   Result := True;
//   if CurPageID = wpSelectDir then CheckBtn;
//end;
 

Хамик

Старожил
решено!
Код:
; Спасибо sergey3695
[Setup]
AppName=1
AppVersion=1
DefaultDirName={pf}\Windows Media Player
DefaultGroupName=1
OutputDir=.

[Code]
var
  Btn: TNewCheckBox;

procedure CheckBtn(Sender:Tobject);
begin
    if FileExists(AddBackslash(WizardForm.DirEdit.Text)+'wmplayer.exe' )
    then begin Btn.Show; Btn.Checked := True; end
    else begin Btn.Hide; Btn.Checked := False; end;
end;

procedure RedesignWizardForm;
begin
  Btn := TNewCheckBox.Create(WizardForm);
  Btn.Caption := 'Hello!';
  Btn.Parent := WizardForm.SelectDirPage;
  Btn.SetBounds(0,110,70,17);
end;

procedure InitializeWizard();
begin
  RedesignWizardForm;
  WizardForm.DirEdit.OnChange := @CheckBtn;
end;
 
Последнее редактирование:
Сверху