var Test : TSize;
Rect1 : TRect;
TextHoehe : Integer;
Zeile : Integer;
Text1 :
String;
begin
for Zeile := 1
to JvRichEdit1.Lines.Count
do
begin //Zeile in der der Text steht (Index der Linesliste +1 des RichEdits)
Text1 := '
Hi';
//Text, der angeklickt werden soll
GetTextExtentPoint32(GetDC(JvRichEdit1.Handle), PChar(Text1), Length(Text1), Test);
//WinApi Funktion, welche die Höhe und die Breite des Textes ausgibt
TextHoehe := -JvRichEdit1.Font.Height;
//Höhe der Schrift allgemein
Rect1 := Rect(0,(Zeile-1)*TextHoehe,Test.cx,Zeile*TextHoehe + Test.cy);
//Bereich festlegen, wo der Text ist, dabei sit vorausgesetz das der Text immer vorne steht
if (y >= Rect1.Top)
and (y+TextHoehe <= Rect1.Bottom)
and (x <= Rect1.Right)
then //Überprüfung ob die Mouse in Rect (speicher am besten x,y von MouseMove und setze
//die Variable für X und Y ein, wenn du die Anweisung hier in DbClick einfügst
begin
//hier der Code, wenn die Mouse auf dem Text ist.
//z.b.
JvRichEdit1.SelStart := 0;
JvRichEdit1.SelLength := Length(Text1);
if not (fsUnderline
in JvRichEdit1.SelAttributes.Style)
then
begin
JvRichEdit1.SelAttributes.Style := JvRichEdit1.SelAttributes.Style + [fsUnderline];
end;
JvRichEdit1.Cursor:=crHandpoint;
Caption := IntToStr(Zeile);
// die Zeile über der die Maus ist
break;
end
else
begin
//und hier schreibste rein wie er normal aussehen soll.
//z.b.
JvRichEdit1.SelStart := 0;
JvRichEdit1.SelLength := Length(Text1);
if fsUnderline
in JvRichEdit1.SelAttributes.Style
then
begin
JvRichEdit1.SelAttributes.Style := JvRichEdit1.SelAttributes.Style - [fsUnderline];
JvRichEdit1.Cursor:=crDefault;
end;
end;
end;
end;