I have modificad.
procedure TCustomComTerminal.Paint;
var
ARect: TRect;
begin
Canvas.Font := Font;
Canvas.Brush.Color := Color;
if csDesigning in ComponentState then
PaintDesign
else
begin
MoveCaret(FCaretPos.X, FCaretPos.Y);
// don't paint whole screen, but only the invalidated portion
ARect.Left := Canvas.ClipRect.Left div (FFontWidth + 1);
ARect.Right := Min(Canvas.ClipRect.Right div (FFontWidth + 1), FColumns);
ARect.Top := Canvas.ClipRect.Top div (FFontHeight + 1);
ARect.Bottom := Min(Canvas.ClipRect.Bottom div (FFontHeight + 1), FRows);
PaintTerminal(ARect);
end;
end;