gpt4 book ai didi

delphi - FireMonkey 应用程序中的 TFileOpenDialog

转载 作者:行者123 更新时间:2023-12-03 15:33:13 25 4
gpt4 key购买 nike

我正在使用 FireMonkey,并希望用户使用 TFileOpenDialog 提供的界面选择目录(我发现 SelectDirectory 界面充其量已经过时 - 是的,即使使用 sdNewUI 选项)。

TFileOpenDialog with [fdoPickFolders] option

首先,在 FireMonkey 应用程序中包含 VCL.Dialogs 单元(使用 TFileOpenDialog)是不是不好的做法?

其次,这仍然只能在 Windows Vista 及更高版本中实现。这是检查兼容 Windows 版本的正确方法吗?

{IFDEF WIN32 or WIN64}
if Win32MajorVersion >= 6 then
// Create TOpenFileDialog with fdoPickFolders option

最佳答案

为了将来引用,使用 IFileDialog 创建 Windows Vista 及更高版本的文件夹对话框:

uses
ShlObj, ActiveX;

...

var
FolderDialog : IFileDialog;
hr: HRESULT;
IResult: IShellItem;
FileName: PChar;
Settings: DWORD;
begin
if Win32MajorVersion >= 6 then
begin
hr := CoCreateInstance(CLSID_FileOpenDialog,
nil,
CLSCTX_INPROC_SERVER,
IFileDialog,
FolderDialog);

if hr = S_OK then
begin
FolderDialog.GetOptions(Settings);
FolderDialog.SetOptions(Settings or FOS_PICKFOLDERS);
FolderDialog.GetOptions(Settings);
FolderDialog.SetOptions(Settings or FOS_FORCEFILESYSTEM);
FolderDialog.SetOkButtonLabel(PChar('Select'));
FolderDialog.SetTitle(PChar('Select a Directory'));

hr := FolderDialog.Show(Handle);
if hr = S_OK then
begin
hr := FolderDialog.GetResult(IResult);

if hr = S_OK then
begin
IResult.GetDisplayName(SIGDN_FILESYSPATH,FileName);
ConfigPathEdit.Text := FileName;
end;
end;
end;
end;
end;

关于delphi - FireMonkey 应用程序中的 TFileOpenDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10998309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com