Du müßtest nur die Zeile markieren, statt das Wort.
Das sollte der Code sein der die Zeile markiert. Danach nur noch einfärben:
Delphi-Quellcode:
procedure SelLine(CM: TCustomMemo; ALine: Integer);
begin
CM.SelStart := CM.Perform(EM_LINEINDEX, ALine, 0);
CM.SelLength := Length(CM.Lines[ALine]);
end;
Beispielaufruf:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
SelLine(RichEdit1, Button1.Tag);
RichEdit1.SelAttributes.Color := $000099FD;
Button1.Tag := Button1.Tag + 1;
end;
Hier noch ein Code falls du wissen willst in welcher Zeile du dich befindest:
Delphi-Quellcode:
function GetCurLine(CM: TCustomMemo): Integer;
begin
Result := SendMessage(CM.Handle, EM_LINEFROMCHAR, CM.SelStart, 0);
end;
Beispielaufruf:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(IntToStr(GetCurLine(RichEdit1)));
Button1.Tag := Button1.Tag + 1;
end;