Как выделить другим цветом текущую строку (под кареткой)?
procedure TForm1.SynEdit1SpecialLineColors(Sender: TObject; Line: Integer;
var Special: Boolean; var FG, BG: TColor);
begin
if Line = TSynEdit(Sender).CaretY then
begin
Special := True;
BG := clInfoBk;
end;
end;
// Или чуть более сложный вариант
interface
type
TSynEdit = class(SynEdit.TSynEdit)
protected
procedure SetCaretXY(const Value: TBufferCoord); override;
procedure SetCaretXYEx(CallEnsureCursorPos: Boolean; Value: TBufferCoord); override;
end;
implementation
procedure TForm1.SynEdit1SpecialLineColors(Sender: TObject; Line: Integer;
var Special: Boolean; var FG, BG: TColor);
begin
if Line = TSynEdit(Sender).CaretY then
begin
Special := True;
BG := clInfoBk;
end;
end;
{ TSynEdit }
procedure TSynEdit.SetCaretXY(const Value: TBufferCoord);
begin
inherited;
Repaint;
end;
procedure TSynEdit.SetCaretXYEx(CallEnsureCursorPos: Boolean;
Value: TBufferCoord);
begin
inherited;
Repaint;
end;
|