TRichEdit の url アンダーライン、カーソルの変化について


Terry  2013-12-10 07:04:53  No: 45703

お世話になります、ほぼ連投で済みません

これでアンダーラインを付けられますが
procedure TRichEdit.CreateWnd;
var
  mask: Word;
begin
  inherited CreateWnd;
  SendMessage(Handle, EM_AUTOURLDETECT,1, 0);
  mask := SendMessage(Handle, EM_GETEVENTMASK, 0, 0);
  SendMessage(Handle, EM_SETEVENTMASK, 0, mask or ENM_LINK);
end;

最終行に url があると該当行の下もずっと「指カーソル」のままなのは Windows 側の問題なのでしょうか?
一つでも改行が入ると問題ないのですが

↓で EOF 以降も最終行と同じ行数が帰ってくるのでやはりこの判断ではダメでしょうか
procedure TForm1.RichEdit1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
  CaretIndex:integer;
  aPos:TPoint;
  Line:integer;
begin
  aPos.x:=X;
  aPos.y:=Y;
  with RichEdit1 do
  begin
    CaretIndex:=SendMessage(Handle,EM_CHARFROMPOS,0,Longint(@aPos));
    Line:=SendMessage(Handle,EM_LINEFROMCHAR,CaretIndex,0);
  end;
  Caption:=IntToStr(Line);
end;

以上、よろしくお願いいたしますm(_ _)m


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加