영수증 출력을 위한 화면미리보기 폼을 구현하고 있습니다.
A4지를 가로방향으로 하고 반으로 나누어 같은 내용을 2번 그리게 하고 싶습니다.(보관용, 고객용 이렇게)
지금 구현해 놓은거는 Canvas의 좌우측영역의 값을 미리 구해 LeftRect, RightRect 이렇게 변수에 담아두고
함수를 하나 구현해서
DrawRect(LeftRect);
DrawRect(RightRect);
이렇게 하고 있습니다.
procedure DrawRect(R: TRect)
var
R : TRect;
begin
with Printer do
begin
Pen.Width := 1;
Canvas.MoveTo(R.Left, R.Top);
Canvas.LineTo(R.Right, R.Top);
TextRect(R, R.Left, R.Top, '사업자등록번호 :');
...
...
end;
...
...
end;
위코드는 그리는 작업을 2번하는거라 한번은 이미 그렸으니까 그걸 그대로 copy하면 좋을것 같은데
방법이 없나해서 질문을 드립니다.
Canvas의 매소드중 CapyRect라는게 있어서 테스트해 봤는데 안되더군요.
이건 bitmap의 일정영역을 그대로 카피하는것 같던데 위처럼 Canvas에 선과 글을 그린후
이럴 그대로 다른 영역으로 그대로 카피하는 법은 없습니까?(2개의 TRect는 하나의 Canvas에서 서로
다른 위치일뿐입니다)
즉 Canvas.CopyRect(RightRect, Canvas, LeftRect) 이런식의 사용이 가능하면 좋을것 같은데
무슨 수가 없나요?
|