寻找能够显示超级连接和Email带下划线的控件,
例如:我打入http://www.playicq.com后该文字自动会变成带兰色的下划线
打入[email protected] 也会自动变成兰色下划线的超连接。
谁有此类控件,救救我吧!
我的mail:[email protected]
例如:我打入http://www.playicq.com后该文字自动会变成带兰色的下划线
打入[email protected] 也会自动变成兰色下划线的超连接。
谁有此类控件,救救我吧!
我的mail:[email protected]
安装后,它在Samples页上。
你可以用UnURLColor属性来设置当输入的文字不是URL时的文字颜色
祝你好运!
unit UrlEdit;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;type
TUrlEdit = class(TEdit)
private
FUnURLColor:TColor;
//此函数用于判断字符串是不是URL格式的,你可以对它进行扩展,以识别更多的URL格式
function isURL(theText:String):Boolean;
Procedure Change(Sender:TObject);
{ Private declarations }
protected
{ Protected declarations }
public
constructor Create(AOwner: TComponent); override;
{ Public declarations }
published
{ Published declarations }
//此属性用于设置当输入的文字不是URL时的字体颜色
property UnURLColor:TColor read FUnURLColor write FUnURLColor;
end;procedure Register;implementation{ TUrlEdit }
function TUrlEdit.isURL(theText: String): Boolean;
var
aStr:String;
HttpURL,MailURL,FTPURL:boolean;
begin
aStr:=LowerCase(trim(theText));
result:=false;
HttpURL:=(pos('http://',aStr)=1) and (length(aStr)>7);
MailURL:=(pos('@',aStr)>0) and (length(aStr)>pos('@',aStr));
FTPURL:=(pos('ftp://',aStr)=1) and (length(aStr)>6);
if HttpURL or MailURL or FTPURL then
result:=true;
end;procedure TUrlEdit.Change(Sender: TObject);
begin
if isURL(Text) then
begin
Font.Style:=Font.Style+[fsUnderLine];
Font.Color:=clBlue;
end
else
begin
Font.Style:=Font.Style-[fsUnderLine];
Font.Color:=FUnURLColor;
end;
end;constructor TUrlEdit.Create(AOwner: TComponent);
begin
inherited;
onChange:=Change;
FUnURLColor:=Clblack;
end;procedure Register;
begin
RegisterComponents('Samples', [TUrlEdit]);
end;end.
如果是edit就在onchange中判断
http://www.ehomsoft.com/mine/urltest.rar
shellexecute(handle, nil, 'http://www.ehomsoft.com', nil, nil, sw_normal);
好像要引用:shellapi