16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"ハイパーリンク文字列のハイライト表示"
この発言に対し以下のコメントが寄せられています
#00688 H-Triton さん RE:ハイパーリンク文字列のハイライト表示
ハイパーリンク文字列(Niftyや Web SiteのURL)を RichEditのキャレット位置
から検索開始して、見つけたらハイライト表示(文字色を変えてアンダーライン
をつける)します。
function HiliteURL(Kind: Integer): Integer;
引数 Kind : 0で Nifty-URL、1で WWW-URLを指定する。
関数は、URLを見つけたらその位置(インデックス)を返し、URL文字列の後
にキャレットをセットします。
URL文字列が見つからなければ関数は -1を返します。
以下のサンプルコードでは便宜上、関数をメインフォーム(TForm1)の Private
メンバーとしています。
//-------------------------
// 関数
function TForm1.HiliteURL(Kind: Integer): Integer;
var
m: Integer;
Col: TColor;
begin
Result:= -1;
with RichEdit1 do
begin
if Kind = 0 then
begin
Result:= FindText('nifty:', SelStart, Length(Text), [stMatchCase]);
if Result = -1 then Exit else SelStart:= Result;
m:= SelStart + 1;
while Text[m] in ['A'..'Z', 'a'..'z', '0'..'9', '/', ':'] do Inc(m);
Col:= clBlue;
end else
if Kind = 1 then
begin
Result:= FindText('http://www.', SelStart, Length(Text), [stMatchCase]);
if Result = -1 then Exit else SelStart:= Result;
m:= SelStart + 1;
while Text[m] in
['A'..'Z', 'a'..'z', '0'..'9', '/', '.', ':', '-', '_' , '~', '%'] do
Inc(m);
Col:= clGreen;
end else Exit;
SelLength:= m - SelStart;
SelAttributes.Style:= [fsUnderline];
SelAttributes.Color:= Col;
SelStart:= m;
end;
end;
// 呼び出し例
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
for i:= 0 to 1 do
begin
RichEdit1.SelStart:= 0;
repeat until HiliteURL(i) = -1;
end;
end;
★ AvalonU使うならログブラウザ「えるつぅ」公開中 ★
AvalonないとNIFTYできない(^^) H-Triton Since 1996
Original document by H-Triton 氏 ID:(QZV11422)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|