Почему JclIDEUtils работает, только если Jcl установлен?

У меня есть следующий код, который пытается обнаружить установки Delphi с помощью JclIDEUtils. Чтобы проверить это, я настроил две виртуальные машины, обе из которых работают под управлением Win 7, и в обеих системах я установил Delphi XE3, но в VM n1 я также установил Jcl, в VM n2 - нет. Ну, в n1 моя маленькая прога работает нормально и находит Delphi XE3, в n2 - нет! Я попытался выполнить удаленную отладку программы на обеих виртуальных машинах, но я понял только одно: объект, который создает класс TJclBorRADToolInstallations, просто остается пустым, если Jcl не установлен.

Это мой код в событии OnShow моей формы:

procedure TForm1.FormShow(Sender: TObject);
var
  I, X: Integer;
  TN, SubTn: TTreeNode;
  IconIndex: Integer;
begin
  FDelphiInstallations := TJclBorRADToolInstallations.Create;
  for I := 0 to FDelphiInstallations.Count - 1 do
  begin
    IconIndex := ilDelphiIcons.AddIcon(GetSmallIcon(FDelphiInstallations[I].IdeExeFileName));
   TN := tvDisplay.Items.AddChild(nil, FDelphiInstallations[I].Name);
   TN.ImageIndex := ilDelphiIcons.Count - 1;
   TN.SelectedIndex := ilDelphiIcons.Count - 1;
   with tvDisplay.Items do
   begin
    SubTn := AddChild(TN, 'Description: ' + FDelphiInstallations[I].Description);
    SubTn.ImageIndex := 0;
    SubTn := AddChild(TN, 'Root directory: ' + FDelphiInstallations[I].RootDir);
    SubTn.ImageIndex := 0;
    SubTn := AddChild(TN, 'Projects directory: '+ FDelphiInstallations[i].DefaultProjectsDir);
    SubTn.ImageIndex := 0;
    SubTn := AddChild(TN, 'Common Projects directory: '+ FDelphiInstallations[i].CommonProjectsDir);
    SubTn.ImageIndex := 0;
    SubTn := AddChild(TN, 'Executable File name: '+ FDelphiInstallations[i].IdeExeFileName);
    SubTn.ImageIndex := 0;
    SubTn := AddChild(TN, 'Build number: '+ FDelphiInstallations[i].IdeExeBuildNumber);
    SubTn.ImageIndex := 0;
    SubTn := AddChild(TN, 'VersionNumberStr='+ FDelphiInstallations[i].VersionNumberStr);
    SubTn.ImageIndex := 0;
    SubTn := AddChild(TN, 'Registry key='+ FDelphiInstallations[i].ConfigDataLocation);
    SubTn.ImageIndex := 0;
    for X := 0 to FDelphiInstallations[i].IdePackages.Count - 1 do
    begin
      SubTn := AddChild(TN, 'Description: ' + FDelphiInstallations[I].IdePackages.PackageFileNames[X]);
      SubTn.ImageIndex := 0;
    end;
  end;
end;
end;

Кто-то знает что-то об этой проблеме?

Спасибо заранее за любые советы.

1 ответ

Решение

Jcl не смог обнаружить установку Delphi, потому что я не запускал Delphi. После запуска Delphi JclIDEUtils обнаруживает его установку, и моя программа тестирования успешно отображает данные установки Delphi.

Другие вопросы по тегам