编程资料集中营
 | 网站首页 | 文章中心 | 编程资料2 | 软件下载 | BT下载 | 八卦星闻 | 音乐在线 | 在线游戏 | 免费电影 | 进入问吧 | 
让别人通过菜单项访问你的个人主页,很多软件,如Delphi4.0的菜单项Help就有这种功能(如下图所示),可以让用户很直接、方便地访问该公司的主页。你知道这一功能是如何实现的吗?首先说说实现这一功能的原理:你知道在Windows95的资源管理器里,只要用鼠标双击某个文件,它就会调用与它相关联的应用程序对它进行打开、显示、编辑或打印等操作。对于Windows95来说,只需要知道文件的扩展名是,
您现在的位置: 编程资料,学习资料,c,c++,vc,vc++,java,jsp,j2ee,j2me,asp,php >> 文章中心 >> delphi >> 文章正文
【字体:
让别人通过菜单项访问你的个人主页   进入问吧

本站地址:http://www.bajiao123.com

作者:佚名    文章来源:不详    点击数:    更新时间:2007-8-1    

让别人通过菜单项访问你的个人主页

  很 多 软 件, 如Delphi 4.0 的 菜 单 项Help 就 有 这 种 功 能( 如 下 图 所 示), 可 以 让 用 户 很 直 接、 方 便 地 访 问 该 公 司 的 主 页。 你 知 道 这 一 功 能 是 如 何 实 现 的 吗 ?

  首 先 说 说 实 现 这 一 功 能 的 原 理: 你 知 道 在Windows 95 的 资 源 管 理 器 里, 只 要 用 鼠 标 双 击 某 个 文 件, 它 就 会 调 用 与 它 相 关 联 的 应 用 程 序 对 它 进 行 打 开、 显 示、 编 辑 或 打 印 等 操 作。 对 于Windows 95 来 说, 只 需 要 知 道 文 件 的 扩 展 名 是 注 册 在 哪 一 个 应 用 程 序 里 就 可 以 了。 在Delphi 中, 要 打 开 和 打 印 某 个 特 定 的 文 件, 必 须 使 用ShellExcute 函 数( 一 个 Windows API 函 数), 其 定 义 在ShellAPI..PAS 里 可 以 找 到。ShellExcute 的 原 型 为:

/Article/UploadFiles/200708/200781123747213.jpg (28658 字节)

Function ShellExecute(

hWnd: HWND; // 文 件 句 柄

  Operation, // 指 向 一 个 字 符 串, 该 字 符 串 的 内 容 为 可 执 行 的 特 定 操 作。 可 用 的 字 符 串 为"Open" 和"Print", 用 来 打 开 和 打 印 特 定 的 文 件。



FileName, // 指 向 文 件 名 的 字 符 串。

Parameters, // 指 向 一 个 字 符 串,

内 容 为 可 执 行 文 件 所 带 的 参 数。

Directory: // 指 向 一 个 字 符 串,

内 容 为 可 执 行 文 件 的 缺 省 目 录。

Pchar ShowCmd:Integer // 应 用 程 序 以 何 种

显 示 方 式 打 开。 如SW_SHOWNORMAL

( 一 般 方 式)、SW_SHOWMINIZE( 最 小 化)、

SW_SHOWMAXIMIZE( 最 大 化)。

): HINST:stdcall;


  举 个 例 子:

ShellExecute (handle, 'open', 'http://www.mypage.co

m',nil,nil, SW_SHOWNORMAL);

  这 个 函 数 会 启 动WINDOWS 里 缺 省 的 浏 览 器 去 进 入"www.mypage.com" 这 个WWW 页 面。 另 外 还 可 以 访 问 这 个 站 点 下 某 个 指 定 的 文 件。 如: "http://www.mypage.com/games/diablo.html" 。 上 面 只 是 简 单 地 以 缺 省 方 式 打 开WWW 页 面, 没 有 使 用 错 误 处 理 来 判 断 可 能 出 现 的 异 常 情 况, 只 要 页 面 的 地 址 确 实 存 在 就 可 以。

  下 面 用 一 过 程 来 处 理 调 用 页 面 时 可 能 出 现 的 种 种 错 误:

procedure ExploerWeb(handle:HWND ; page:PChar);

Var

Returnvalue : integer;

begin

ReturnValue := ShellExecute(handle, 'open', page, nil, nil,

SW_SHOWNORMAL);

if ReturnValue <= 32 then

case Returnvalue of

0 : MessageBox(handle,'Error: Out of Memory','Error

ExploreWeb',0);// 内 存 不 足

ERROR_FILE_NOT_FOUND: MessageBox(handle,'Error:

File not Found','Error ExploreWeb',0); // 没 有 找 到 该 文 件

ERROR_PATH_NOT_FOUND: MessageBox(handle,'Error:

Directory not','Error ExploreWeb',0); // 路 径 不 对

ERROR_BAD_FORMAT:MessageBox(handle,'Fehler: Wrong

format in EXE','Error ExploreWeb',0); // 文 件 格 式 不 对

// 还 有 其 他 错 误 处 理, 请 参 考 帮 助

ShellExcute 的ReturnValues 说 明。

Else MessageBox (handle,PChar('Error nr:' +

IntToStr(Returnvalue) +'in ShellExecute'),

'Error ExploreWeb',0) // 其 他 错 误

end //case

end;

用 菜 单 项 实 现 的OnClick 事 件 如 下:

Procedure Form1.MyPageHelpMenuClick(Sender: TObject);

begin

ExploreWeb(handle,'http://www.myweb.de/help.htm');

end;

  就 这 么 简 单, 有 位 高 手 曾 经 说 过,Delphi 的 精 华 在 于 掌 握Windows 的API, 有 了 它, 没 有 什 么 不 可 以 实 现 的。 真 是 一 语 道 破 天 机。 

   

进入问吧

本站地址:http://www.bajiao123.com

文章录入:admin    责任编辑:admin 
高级搜索
编程资料集中营