TNTコントロールでDelphi7を使用しています。Win7 で最新の [開く/保存] ダイアログを呼び出す方法はありますか? 多分VCLへのパッチ、TNTへのパッチ?Unicode 対応のダイアログが必要なため、TNT パッチが推奨されますが、VCL パッチも必要になる場合があります (少ない)。
質問する
1073 次
1 に答える
3
おそらく最も簡単な方法は、API 関数GetOpenFileName
をGetSaveFileName
直接呼び出すことです。これらは、難解な機能を使用しない限り、Vista 以降では最新のダイアログを表示します。
明らかに、W バリアントを呼び出し、構造体の W バージョンを渡す必要があります。
これが私が構築できる最も簡単な例です:
var
ofn: TOpenFilenameW;
FileName: array [0..MAX_PATH-1] of WideChar;
begin
FillChar(ofn, SizeOf(ofn), 0);
ofn.lStructSize := SizeOf(ofn);
ofn.hWndOwner := Handle;
ofn.lpstrFilter := 'All files'#0'*.*'#0;
FileName[0] := #0;
ofn.lpstrFile := @FileName;
ofn.nMaxFile := Length(FileName);
ofn.lpstrTitle := 'Select File';
if GetOpenFileNameW(ofn) then
MessageBoxW(Handle, FileName, nil, MB_OK);
end;
当然、これを拡張してより多くの機能を持たせることができます。
于 2013-05-16T18:16:25.430 に答える