2017-05-17 63 views
3

Inno SetupのwpSelectDirにいるの次のをクリックすると、インストールディレクトリのパスを取得したいと考えています。{app}が設定される前にwpSelectDirのパスを取得するInno Setup

パスを確認する必要があるため、パスを確認する必要があります。正しくない場合は、ユーザーに続行させません。

私の問題は、それがwpSelectDir後に設定して、私はまだだことになるので、一定の{app}は、まだ設定されていないことである。

答えて

2

使用WizardDirValue support function

は、ウィザードの[インストール先の場所ページの編集コントロールの現在の内容を返します。

ExpandConstant('{app}')とは異なり、ウィザードが表示された後、ユーザーがディレクトリを選択する前にこの関数を呼び出すと、この関数は失敗しません。むしろ、デフォルトのディレクトリ名を返します。


それは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.Textは、DirEditテキストボックスに現在の値を返します。手順onDirChangeは、dirEditテキストボックス内のテキストが変更されるたびに呼び出されます。この値を使用して検証を実行できます。

関連する問題