首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于Delphi7应用程序的现代Win7打开/保存对话框

用于Delphi7应用程序的现代Win7打开/保存对话框
EN

Stack Overflow用户
提问于 2013-05-17 01:41:19
回答 1查看 1.1K关注 0票数 0

我正在使用带有TNT控件的Delphi7。有没有办法在Win7上调用现代的打开/保存对话框?也许是VCL的补丁,TNT的补丁?TNT补丁是首选,因为我需要Unicode感知对话框,但VCL补丁也可能需要(更少)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-17 02:16:25

最简单的方法可能是直接调用GetOpenFileNameGetSaveFileName函数。除非您使用一些更深奥的功能,否则它们将显示Vista及更高版本上的现代对话框。

显然,您需要调用W变体,并传递结构的W版本。

下面是我能构造的最简单的例子:

代码语言:javascript
复制
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;

当然,您可以对其进行扩展以获得更多功能。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16594014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档