调用系统对话框示例

演示如何调用系统对话框 (演示语言--delphi):

uses
ShlObj, Activex;

procedure TForm1.Button2Click(Sender: TObject);
var
BrowseInfo: TBrowseInfo;
ItemIDList: PItemIDList;
ComputerName: array[0..MAX_PATH] of Char;
Title: string;
WindowList: Pointer;
ShellMalloc: IMalloc;
begin
if Failed(SHGetSpecialFolderLocation(Application.Handle, CSIDL_NETWORK, ItemIDList)) then
raise Exception.Create(‘Unable open browse computer dialog‘);
try
FillChar(BrowseInfo, SizeOf(BrowseInfo), 0);
BrowseInfo.hwndOwner := Self.Handle;
BrowseInfo.pidlRoot := ItemIDList;
BrowseInfo.pszDisplayName := ComputerName;
Title := ‘提示标题‘;
BrowseInfo.lpszTitle := PChar(Pointer(Title));
BrowseInfo.ulFlags := BIF_NEWDIALOGSTYLE or BIF_SHAREABLE;
WindowList := DisableTaskWindows(0);
try
SHBrowseForFolder(BrowseInfo);
finally
EnableTaskWindows(WindowList);
end;
//if Result then CompName := ComputerName;
finally
if Succeeded(SHGetMalloc(ShellMalloc)) then
ShellMalloc.Free(ItemIDList);
end;
end;

其中 BrowseInfo.ulFlags 参数可选值和含义如下

BIF_BROWSEFORCOMPUTER
只有当用户
选择“我的电脑”时“确定”按钮才有效,计算机可以是网络的

BIF_BROWSEFORPRINTER
当然是只能选择打印机
允许最终用户选择一特定打印机。当传递该常量时,对话框有如下行为:
“网络邻居”文件夹在树形控件中被预选。
仅那些包括至少一台打印机的计算机在网络邻居文件夹中显示。
仅当选中树形控件中的一个有效打印机时,OK按钮被激活。
即使BIF_EDITBOX指定时也不显示编辑框。

BIF_BROWSEINCLUDEFILES
Version 4.71.
同时显示文件
BIF_BROWSEINCLUDEURLS
Version 5.0. 可以显示快捷方式(URLs).
BIF_USENEWUI 和 BIF_BROWSEINCLUDEFILES 必须同时被设定,如果没有同时选择这三个标志,那么浏览对话框将拒绝 URLs.
BIF_DONTGOBELOWDOMAIN
域层下的网络文件夹不在树形控件中显示

BIF_EDITBOX
显示一个编辑框,允许用户输入一文件夹名,在编辑框上部显示szEditBoxStaticText中的文本(除非指定BIF_BROWSEFORCOMPUTER 或BIF_BROWSEFORPRINTER)。当最终用户单击OK,SelectDirEx检查是否输入了一个有效文件夹名。如果不是(例如,如果输入了包含无效字符的名称),显示一个错误消息并且对话框不被消除
BIF_NEWDIALOGSTYLE
Version 5.0. 使用新的用户界面.
提供一个大的可调的窗体
其实这个对话框和资源管理器操作差不多了,有右键菜单,下边多了一个新建文件夹按钮

BIF_NONEWFOLDERBUTTON
Version 6.0. 不显示”新建文件夹“按钮.
BIF_NOTRANSLATETARGETS
Version 6.0.
但用户选择了一个快捷方式,将返回它的PIDL
BIF_RETURNFSANCESTORS
如果一个文件系统祖先以外的任何对象被选中时OK按钮被禁用
BIF_RETURNONLYFSDIRS
非文件系统某部分的一个文件夹被选中OK按钮被禁用。.

BIF_SHAREABLE
显示远程共享资源,BIF_NEWDIALOGSTYLE 必须被指定

BIF_STATUSTEXT
在树形控件上部作为态文本显示szTreeControlStaticText
BIF_UAHINT
选定 BIF_NEWDIALOGSTYLE的情况下,增加一个注释.
BIF_USENEWUI
=BIF_EDITBOX | BIF_NEWDIALOGSTYLE
BIF_VALIDATE
如果用户在textbox中输入文件夹无效会发送BFFM_VALIDATEFAILED 消息

时间: 2024-11-03 08:07:39

调用系统对话框示例的相关文章

[VB.NET]调用系统的文件夹选择对话框

以下示例代码展示如何调用系统的文件夹选择对话框: 1 Private Function SelectFolder(ByVal Describe As String, Optional ByVal ShowNewFolder As Boolean = True) As String 2 Using nOpen As New System.Windows.Forms.FolderBrowserDialog() 3 nOpen.Description = Describe 4 nOpen.ShowNe

调用系统的打电话,发短信,邮件,蓝牙

在开发某些应用时可能希望能够调用iOS系统内置的电话.短信.邮件.浏览器应用,此时你可以直接使用UIApplication的OpenURL:方法指定特定的协议来打开不同的系统应用.常用的协议如下: 打电话:tel:或者tel://.telprompt:或telprompt://(拨打电话前有提示) 发短信:sms:或者sms:// 发送邮件:mailto:或者mailto:// 启动浏览器:http:或者http:// 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

IOS中调用系统的电话、短信、邮件、浏览功能

iOS开发系列--通讯录.蓝牙.内购.GameCenter.iCloud.Passbook系统服务开发汇总 2015-01-13 09:16 by KenshinCui, 26990 阅读, 35 评论, 收藏, 编辑 --系统应用与系统服务 iOS开发过程中有时候难免会使用iOS内置的一些应用软件和服务,例如QQ通讯录.微信电话本会使用iOS的通讯录,一些第三方软件会在应用内发送短信等.今天将和大家一起学习如何使用系统应用.使用系统服务: 调用系统应用 使用系统服务目 录 短信与邮件 通讯录

javascript基础——鼠标事件,系统对话框等

1.鼠标事件 (1).onclick:用户点击鼠标左键,以及当焦点在一个按钮上时,用户按Enter键时,发生onclick事件 (2).ondblclick:用户双击鼠标左键时,发生ondblclick事件 (3).onmousedown:用户按下任意鼠标按钮的时候,发生onmousedown事件 (4).onmouseout:当光标在一个元素上,并且用户将其移出元素边界时,发生onmouseout事件 (5).onmouseover:当光标在一个元素之外,并且用户将移动到该元素上时,发生onm

调用系统的相机和图库,并裁剪

1 private static final int PHOTO_REQUEST_TAKEPHOTO = 1;// 拍照 2 private static final int PHOTO_REQUEST_GALLERY = 2;// 从相册中选择 3 private static final int PHOTO_REQUEST_CUT = 3;// 结果 4 private File tempFile = new File(Environment.getExternalStorageDirect

[Android Pro] 调用系统相机和图库,裁剪图片

private static final int PHOTO_REQUEST_TAKEPHOTO = 1;// 拍照 private static final int PHOTO_REQUEST_GALLERY = 2;// 从相册中选择 private static final int PHOTO_REQUEST_CUT = 3;// 结果 private File tempFile = new File(Environment.getExternalStorageDirectory(), g

WCF服务开发与调用的完整示例

开发工具:VS2008 开发语言:C# 开发内容:简单的权限管理系统 第一步.建立WCF服务库 点击确定,将建立一个WCF 服务库示例程序,自动生成一个包括IService1.cs和Service1.cs两个类文件.我们可以直接对其修改开发我们的服务,但一般直接删除. 第二步:开发实体类 在解决方案中,添加新类Module.cs 在类中要首先引入using System.Runtime.Serialization命名空间 实体类具体代码如下: namespace WcfServiceLib.mo

调用系统相册或相机工具类

需求:点击修改头像,弹出对话框提示选择相册还是相机,从而调用系统相册或相机 import android.app.Activity; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.graphics.Bitmap; import android.net.Uri; import android.os.Bundle; import

Android Camera 使用小结。两种方法:一是调用系统camera app,二是自己写camera程序。

源文链接:http://www.cnblogs.com/franksunny/archive/2011/11/17/2252926.html Android Camera 使用小结 Android手机关于Camera的使用,一是拍照,二是摄像,由于Android提供了强大的组件功能,为此对于在Android手机系统上进行Camera的开发,我们可以使用两类方法:一是借助Intent和MediaStroe调用系统Camera App程序来实现拍照和摄像功能,二是根据Camera API自写Came