ndle, ‘open’,‘ mailto:who@mail.neu.edu.cn’, nil, nil, SW_SHOWNORMAL);打开新邮件窗口,并自动填入收件人地址。若指定多个收件人地址,则收件人地址之间必须用分号或逗号分隔开(下同)。
格式三:mailto:用户账号@邮件服务器地址?subject=邮件主题&body=邮件正文
如:ShellExecute(handle, ‘open’, ‘ mailto:who@mail.neu.edu.cn?subject=Hello&Body=This is a test’, nil, nil, SW_SHOWNORMAL);打开新邮件窗口,并自动填入收件人地址、邮件主题和邮件正文。若邮件正文包括多行文本,则必须在每行文本之间加入换行转义字符%0a。
实现方法
新建一个Delphi工程,并在主窗体中加入两个标签控件HTTPLabel和MailToLabel。将标签控件的Font.Color属性设置为clBlue,Font.Style属性设置为空白,Cursor属性设置为crHandPoint,Caption属性分别设置为“欢迎惠顾我们的网站”和“给我们写信”。
为模拟超链接效果,首先,在标签控件的MouseMove事件中将标签控件的Font.Color属性设置为clRed,Style属性设置为fsUnderline。
procedure TForm1.HTTPLabelMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
begin
HTTPLabel.Font.Color := clRed;
HTTPLabel.Font.Style := [fsUnderline];
end;
procedure TForm1.MailToLabelMouseMove(Sender: TObject; Shift: TShiftState;X, Y: Integer);
begin
MailToLabel.Font.Color := clRed;
MailToLabel.Font.Style := [fsUnderline];
end;
然后,在主窗体的MouseMove事件中将标签控件的Font.Color属性设置为clBlue,Font.Style属性设置为空白,以便鼠标离开标签控件时标签控件能够恢复原始显示状态。
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
begin
HTTPLabel.Font.Color := clBlue;
HTTPLabel.Font.Style := ;
MailToLabel.Font.Color := clBlue;
MailToLabel.Font.Style := ;
end;
最后,分别在两个标签控件的OnClick事件中加入网站链接或者发送邮件的程序代码即可。
procedure TForm1.HTTPLabelClick(Sender: TObject);
begin
if ShellExecute(Handle,
‘open’,
‘http://www.neu.edu.cn’,
nil,
nil,
SW_SHOWNORMAL) <= 32 then
ShowMessage(‘发生网络错误!’);
end;
procedure TForm1.MailToLabelClick(Sender: TObject);
begin
if ShellExecute(Handle,
‘open’,
‘mailto:who@mail.neu.edu.cn’,
nil,
nil,
SW_SHOWNORMAL) <= 32 then
ShowMessage(‘发生邮递错误!’);
end;
注意:由于ShellExecute函数是在shellapi.pas单元中声明的,因此必须加入对shellapi.pas单元的引用:
uses
ShellAPI;
当然,读者还可以自行尝试将其制作成超链接控件以便使用。