用Delphi实现超级链接

Author: 汪箴 Date: 1998年 第27期 13版

  在许多程序的“关于”对话框中,我们常可以看到“超级链接”式的标签,只须轻轻一点,就能立即启动电子邮件程序给作者写信,或者启动浏览器观看某主页,或者远程登录,或者自动链入新闻组……
  如果你苦于找不到实现这些功能的Delphi控件,又无法在帮助文件中找到相关主题,那不妨参照下文,亲手一试!
  别看上述的“超级链接”功能繁多,其实用一条函数就能完成,那就是ShellAPI单元中的ShellExecute。不要误以为它只能执行外部的exe文件,其实它可管用了。它的参数为hWnd:Integer;Operation:PChar;File:PChar;Parameters:PChar;Directory:PChar;ShowCmd:Integer,依次表示父窗口的句柄(handle)、操作类型(缺省时为open)、文件名、启动参数、缺省目录、窗口显示方式。在制作超级链接时,第2、4、5项参数都不需填。窗口显示方式一般填SW_ SHOWNOACTIVATE或者SW_ SHOWNORMAL。其中最关键的就是文件名一项了。
  当它以“mailto:”开头时(不需引号),启动的是邮件程序;以“http://”、“ftp://”或“gopher://”开头,启动网络浏览程序;以“news:”开头,启动新闻讨论程序;以“telnet:”开头,启动telnet.exe。
  举例来说,若要调用程序给《电脑报》发e-mail,可以这样写:ShellExecute(handle,nil,pchar(′mailto:dnbcpw@public.cta.cq.cn′),nil,nil,SW_SHOWNORMAL);
  最后提醒一句,别忘了在uses句中加入ShellAPI。以上程序在Delphi3中调试通过。