2015-02-01 6 views
0

설치할 구성 요소를 기반으로 고유 한 AppId 이름을 만들 수 있습니까? 각 상태에 대해 상태 별 구성 요소를 설치하는 추가 기능이 있으며 한 번에 하나의 상태 만 선택하여 설치할 수 있습니다. 구성 요소 (상태 머리 글자)로 GUID 접두사 또는 접미사를 붙이면 각 상태를 독립적으로 제거 할 수 있어야합니다. 아래에서 시도했지만 트릭을 수행하지 않는 것 같습니다.구성 요소 기반 AppId 이름

function GetAppId(Value: string): string; 
    begin 
     Result := {WizardSelectedComponents} + '{{244A887F-F3DC-4B8D-B0F8-548A90464CEF}'; 
    end; 
는 는

답변

0

당신은 그러나 많은 구성 요소에 대한 당신이 다른 ID 싶은, 이런 일을 할 수있는 : 당신은 런타임에 지시 값을 할당 할 때 상수를 탈출 할 필요가 없습니다

function GetAppId(Value: string): string; 
var 
    strResult: String; 
begin 
    if IsComponentSelected('ComponentName1') then 
    begin 
     strResult := '{244A887F-F3DC-4B8D-B0F8-548A90464CEF}'; 
    end 
    else if IsComponentSelected('ComponentName2') then 
    begin 
     strResult := '{A0A115ED-45E5-4DC7-A73A-3E8046CA4478}'; 
    end; 
end; 
+1

을 (탈출이 필요하다 컴파일러 용). 이 코드는 실제로 중괄호가 두 배로 된 GUID를 생성합니다 (그러나 누가 알겠습니까?). 또한,'Result' 변수를 초기화하는 것을 잊지 마십시오. – TLama

+1

그 점을 지적 해 주신 고마워요 @TLama. 위의 수정. –

관련 문제