2017-05-17 25 views
3

사용자가 을 클릭하면 설치 디렉토리의 경로를 얻으려고합니다. 다음을 Inno Setup의 wpSelectDir에 있습니다.{app}이 설정되기 전에 wpSelectDir의 경로를 가져옵니다. Inno Setup

경로를 확인해야하기 때문에 경로를 확인해야하며 올바르지 않으면 계속할 수 없습니다.

내 문제는 그것이 wpSelectDir 후 설정하고 나는 여전히 해요되기 때문에 상수 {app}이 아직 설정되지 않은 것입니다.

답변

2

사용 WizardDirValue support function :

마법사의 대상 선택 위치 페이지의 편집 컨트롤의 현재 내용을 반환합니다.

ExpandConstant('{app}')과 달리 마법사가 표시되고 사용자가 디렉토리를 선택하기 전에이 함수를 호출하면이 함수가 실패하지 않습니다. 오히려 기본 디렉토리 이름을 리턴합니다.


IT는 WizardForm.DirEdit.Text보다 더 관용적이다.

내부적으로는 거의 같은 않지만 :

RemoveBackslashUnlessRoot(WizardForm.DirEdit.Text) 

도 참조 How do you find the user-selected install path in Inno Setup?

2

당신이 뭔가를 할 수 있습니다 ....

procedure onDirChange(Sender: TObject); 
var 
    currentDir: String; 
begin 
    currentDir := WizardForm.DirEdit.Text; 
    // your validation goes here.... 
end; 

procedure InitializeWizard; 
begin 
    WizardForm.DirEdit.onChange := @onDirChange; 
end; 

WizardForm.DirEdit.TextDirEdit 텍스트 상자에 현재 값을 반환합니다. 절차 onDirChange은 dirEdit 입력란의 텍스트가 바뀔 때마다 호출됩니다. 이 값을 사용하여 유효성 검사를 수행 할 수 있습니다.