unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Memo1: TMemo;
Label1: TLabel;
procedure Label1Click(Sender: TObject);
procedure Memo1Change(Sender: TObject);
procedure Memo1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Memo1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Memo1Change(Sender: TObject);
var
I: Integer;
H: Integer;
S: string;
begin
H := Canvas.TextHeight('|');
for I := 0 to TMemo(Sender).Lines.Count - 1 do begin
S := TMemo(Sender).Lines[I];
Label1.Tag := Pos(Label1.Caption, S);
if Label1.Tag > 0 then begin
Label1.Tag := Pos(Label1.Caption, S);
Label1.Top := H * I + 1;
Label1.Left := Canvas.TextWidth(Copy(S, 1, Label1.Tag - 1)) + 1;
Break;
end;
end;
Label1.Visible := False;
Label1.Visible := Label1.Tag > 0;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
Label1.Font.Color := clBlue;
Label1.Font.Style := [fsUnderline];
Label1.Cursor := crHandPoint;
Label1.Parent := Memo1;
Label1.Transparent := True;
Label1.Caption := 'www.csdn.com';
Memo1.Text := 'go www.csdn.com click';
end;procedure TForm1.Label1Click(Sender: TObject);
begin
ShowMessage('你自己试试看');
end;procedure TForm1.Memo1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
Label1.Visible := False;
Label1.Visible := Label1.Tag > 0;
end;procedure TForm1.Memo1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Label1.Visible := False;
Label1.Visible := Label1.Tag > 0;
end;end.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Memo1: TMemo;
Label1: TLabel;
procedure Label1Click(Sender: TObject);
procedure Memo1Change(Sender: TObject);
procedure Memo1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Memo1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Memo1Change(Sender: TObject);
var
I: Integer;
H: Integer;
S: string;
begin
H := Canvas.TextHeight('|');
for I := 0 to TMemo(Sender).Lines.Count - 1 do begin
S := TMemo(Sender).Lines[I];
Label1.Tag := Pos(Label1.Caption, S);
if Label1.Tag > 0 then begin
Label1.Tag := Pos(Label1.Caption, S);
Label1.Top := H * I + 1;
Label1.Left := Canvas.TextWidth(Copy(S, 1, Label1.Tag - 1)) + 1;
Break;
end;
end;
Label1.Visible := False;
Label1.Visible := Label1.Tag > 0;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
Label1.Font.Color := clBlue;
Label1.Font.Style := [fsUnderline];
Label1.Cursor := crHandPoint;
Label1.Parent := Memo1;
Label1.Transparent := True;
Label1.Caption := 'www.csdn.com';
Memo1.Text := 'go www.csdn.com click';
end;procedure TForm1.Label1Click(Sender: TObject);
begin
ShowMessage('你自己试试看');
end;procedure TForm1.Memo1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
Label1.Visible := False;
Label1.Visible := Label1.Tag > 0;
end;procedure TForm1.Memo1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Label1.Visible := False;
Label1.Visible := Label1.Tag > 0;
end;end.
begin
form1.Font.Size:=memo1.Font.Size; //令字体大小保持同步
form1.Font.Name:=memo1.Font.Name; //令字体名称保持同步
Label1.Font.Color := clBlue;
Label1.Font.Style := [fsUnderline];
Label1.Cursor := crHandPoint;
Label1.Parent := Memo1;
Label1.Transparent := True;
Label1.Caption := 'http://www.csdn.net';
Memo1.Text := 'go http://www.csdn.net click';
end;
Shift: TShiftState; X, Y: Integer);
begin
Lpos:=SendMessage(richedit2.Handle, em_linefromchar,richedit2.SelStart,0);//行
Cpos:=SendMessage(richedit2.Handle,EM_LINEINDEX,Lpos,0);
LineLength:=SendMessage(richedit2.handle,EM_LINELENGTH,Cpos,0);
Cpos:=richedit2.SelStart-CPos; //列
count:=lpos*16+cpos;
lpos:=lpos;
edit4.Enabled:=true;
edit4.Font.Color:=clred;
edit5.Enabled:=true;
edit5.Font.Color:=clteal;
edit4.Text:=inttohex(lpos,2);
edit5.Text:=inttohex(cpos,2);
end;
Memo1.CaretPos for Delphi6