Inno Setupの開いているダイアログボックスで複数のファイルを選択するにはどうすればよいですか?
Aug 22 2020
これらは、ファイル選択ダイアログを表示するためのInnoSetupの2つの方法です。
ウィザードページの方法:
[Code]
Var
PageFileDialog: TInputFileWizardPage;
procedure InitializeWizard;
begin
PageFileDialog:= CreateInputFilePage(
wpWelcome,
'Title 1',
'Title 2',
'Title 3');
PageFileDialog:= PageFileDialog.Edits[PageFileDialog.Add('', 'Text file (*.txt)|*.txt', '.txt')];
end;
ダイレクトオープンダイアログ、
[Code]
procedure InitializeWizard;
var
FileName: string;
begin
FileName := '';
if GetOpenFileName('', FileName, '',
'Text Documents (*.txt)|*.txt|All Files|*.*', 'txt') then
begin
{ Filename contains the selected filename }
end;
end;
ただし、これらは開いているダイアログで複数のファイルを選択することを許可していません。1つのファイルのみを選択します。複数のファイルを選択する方法は?
3つの宛先フォルダーを使用した問題のInnoSetupの方法は、ここでは機能しません。複数のファイルを選択できる1つのテキストボックスと参照ボタンである必要があります。
回答
3 mirtheil Aug 22 2020 at 21:00
Inno Setup 6.0.5(u)でテストしました。他のバージョンは異なる場合があります。
GetOpenFileNameMulti
関数を見てください:ドキュメントから:
説明:
ユーザーが1つ以上の既存のファイルを選択できるダイアログボックスを表示します。ユーザーがファイルを選択した場合はTrueを返し、それ以外の場合はFalseを返します。選択したファイルの名前がFileNameListリストに返されます。備考:
フィルターの例: 'テキストファイル(.txt)| .txt |すべてのファイル(。)| 。'例:
var FileNameList: TStrings; begin { Create the list } FileNameList := TStringList.Create; try if GetOpenFileNameMulti('', FileNameList, '', 'Text Documents (*.txt)|*.txt|All Files|*.*', 'txt') then begin { Successful; user clicked OK } { FileNameList contains the selected filename(s) } end; finally FileNameList.Free; end; end;