Thema: RES Builder

Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.350 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: RES Builder 0.1

  Alt 30. Apr 2009, 01:02
Die neueren Delphiversionen beachtest du gar nicht.

Dessen Pfade kannst du so bekommen (Auszug aus einem Autosetup-Tool für eine Komponente):
Delphi-Quellcode:
const
  RegKeyDelphiRoot = 'Software\%s\%s\%d.0';

type
  TDelphiVersion = (dlvDelphi5, dlvDelphi6, dlvDelphi7, dlvBDS3, dlvBDS4,
    dlvRadStudio2007, dlvRadStudio2009);

function GetDelphiRegKey(Version: TDelphiVersion): String;
begin
  case Version of
    dlvDelphi5, dlvDelphi6, dlvDelphi7:
      Result := Format(RegKeyDelphiRoot, ['Borland', 'Delphi', Integer(Version) + 5]);
    dlvBDS3, dlvBDS4, dlvRadStudio2007:
      Result := Format(RegKeyDelphiRoot, ['Borland', 'BDS', Integer(Version)]);
    dlvRadStudio2009:
      Result := Format(RegKeyDelphiRoot, ['CodeGear', 'BDS', Integer(Version)]);
  end;
end;

function GetDelphiRootDir(Version: TDelphiVersion): String;
var
  Reg: TRegistry;
begin
  Result := '';
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_LOCAL_MACHINE;
    if Reg.OpenKeyReadOnly(GetDelphiRegKey(Version))
      and Reg.ValueExists('RootDir') then
      Result := Reg.ReadString('RootDir');
  finally
    Reg.Free;
  end;
end;

function IsDelphiInstalled(Version: TDelphiVersion): Boolean;
begin
  Result := GetDelphiRootDir(Version) <> '';
end;

function GetResCompilerExecutable(Version: TDelphiVersion): String;
begin
  Result := GetDelphiRootDir(Version);
  if Result <> 'then
    Result := IncludeTrailingPathDelimiter(Result) + 'Bin\brcc32.exe';
  if not FileExists(Result) then
    Result := '';
end;
Diese Funktionen sollten so wie sie sind bei dir funktionieren.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat