首页 > 代码库 > 高亮 TRichEdit 当前行

高亮 TRichEdit 当前行

var  gStart, gLength, gCol: Integer;procedure SetRichEdit(aRichEdit: TRichEdit);var  fRow, fCol: Integer;  fStart, fLength, tStart: Integer;begin  fRow := aRichEdit.CaretPos.X;  fCol := aRichEdit.CaretPos.Y;  if gCol = fCol then Exit;  tStart := aRichEdit.SelStart;  fStart := tStart - fRow;  fLength := aRichEdit.Lines[fCol].Length;  aRichEdit.Lines.BeginUpdate;  if fLength > 0 then  begin    aRichEdit.SelStart := fStart;    aRichEdit.SelLength := fLength;    aRichEdit.SelAttributes.Color := clRed;  end;  if gLength > 0 then  begin    aRichEdit.SelStart := gStart;    aRichEdit.SelLength := gLength;//    aRichEdit.SelectAll;    aRichEdit.SelAttributes.Color := clBlack;  end;  aRichEdit.SelStart := tStart;  aRichEdit.SelLength := 0;  aRichEdit.Lines.EndUpdate;  gStart := fStart;  gLength := fLength;  gCol := fCol;end;procedure TForm1.RichEdit1Click(Sender: TObject);begin  SetRichEdit(TRichEdit(Sender));end;procedure TForm1.RichEdit1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);begin  if Key in [37..40] then SetRichEdit(TRichEdit(Sender));end;


高亮 TRichEdit 当前行