|
안녕하세요~~ 그냥 아래 소스를 빌더로
컨버트만 했슴다~~ 컴파일 에러는 없슴다~~
그럼 즐거운 하루 되십시요~~
void DrawPage(TCanvas *Canvas)
{
Canvas->Rectangle(0, 0, 1000, -200);
}
// 기준 점을 APoint로 바꾸고 현재의 기준점을 리턴한다.
TPoint SetOrgPoint(TPoint APoint)
{
TPoint Org, Result;
Escape(Printer()->Canvas->Handle, GETPRINTINGOFFSET, 0, NULL, &Org);
SetWindowOrgEx(Printer()->Canvas->Handle, Org.x-APoint.x, APoint.y-Org.y, &Result);
return Result;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int OldMap;
TPoint OldOrg;
Printer()->BeginDoc();
//{현재 매핑모드를 oldMap에 저장하고 새로운 매핑모드(0.1mm)를 적용한다}
OldMap = SetMapMode(Printer()->Canvas->Handle, MM_LOMETRIC);
//{현재의 기준점을 OldOrg에 저장하고 새로운 기준점(20mm)을 적용한다}
OldOrg = SetOrgPoint(Point( 200, 200 ));
try {
//{그린다}
DrawPage(Printer()->Canvas);
//{여기서 finally 구문은 필히 사용해서 프린터가 먹통이 되는일이 없게..}
}
__finally {
//{기준점을 원래대로 복구한다}
SetOrgPoint(Point(OldOrg.x, OldOrg.y));
//{매핑모드를 원래대로 복구한다}
SetMapMode(Printer()->Canvas->Handle, OldMap);
//{인쇄를 종료한다}
Printer()->EndDoc();
}
}
김진수 님이 쓰신 글 :
:
: 안녕하세요 김진수 입니다.
: 이번에 Canvas로 그려서 출력을 하려고 하는데 프린터에 쪼그마하게
: 나오더군여.. 흑흑
: 간신히 델파이 예제를 구했는데 언어를 몰라 빌더로 바꾸지 못하고
: 있습니다.. 도움 부탁드립니다.
:
: // 그리는 루틴
: procedure DrawPage( Canvas: TCanvas );
: begin
: Canvas.Rectangle( 0, 0, 1000, -200 );
: end;
:
: // 기준 점을 APoint로 바꾸고 현재의 기준점을 리턴한다.
: function SetOrgPoint( APoint: TPoint ): TSize;
: var
: Org: TPoint;
: begin
: Escape( Printer.Canvas.Handle, GETPRINTINGOFFSET, 0, nil, @Org );
: SetWindowOrgEx( Printer.Handle, Org.X-APoint.X, APoint.Y-Org.Y, @Result );
: end;
:
: //메인 루틴
: procedure TMain_Form.Button10Click(Sender: TObject);
: var
: OldMap: Integer;
: OldOrg: TSize;
: begin
: //{인쇄를 시작한다}
: Printer.BeginDoc;
:
: //{현재 매핑모드를 oldMap에 저장하고 새로운 매핑모드(0.1mm)를 적용한다}
: OldMap := SetMapMode( Printer.Handle, MM_LOMETRIC );
:
: //{현재의 기준점을 OldOrg에 저장하고 새로운 기준점(20mm)을 적용한다}
: OldOrg := SetOrgPoint( Point( 200, 200 ) );
:
: try
: //{그린다}
: DrawPage( Printer.Canvas );
:
: //{여기서 finally 구문은 필히 사용해서 프린터가 먹통이 되는일이 없게..}
: finally
: //{기준점을 원래대로 복구한다}
: SetOrgPoint( Point( OldOrg.cx, OldOrg.cy ) );
:
: //{매핑모드를 원래대로 복구한다}
: SetMapMode( Printer.Handle, OldMap );
:
: //{인쇄를 종료한다}
: Printer.EndDoc;
: end;
: end;
:
: 이것입니다... 꼭좀 도와 주세여...
:
: d
|