안뇽하신가여.. 고수님들... 오늘도 질문임당...뽀하하하하...
지금 프린트 부분을 코드로 구현하고 있슴당.. 근디 아래의 소스중에소 모르는 부분이 있어서리.. 궁금해서리 질문을 헐..--;;
구람 존답변 부탁함당....^^;;
procedure Tform1.pr(canvas:Tcanvas);
var
i: integer;
begin
with canvas do
begin
Font.size := round(8*300/getdevicecaps(handle,LOGPIXELSY));// 이부분은 몬가여^^;;
font.style := [];
pen.width := 2;
rectangle(255,-510,2820,-1900);
font.Size := 14;
textout(1395,-150,'TEST');
moveto(2311,-290);
lineto(2820,-290);
moveto(2311,-290);
lineto(2311,-490);
moveto(2820,-290);
lineto(2820,-490);
moveto(2311,-490);
lineto(2820,-490);
글구 이건또 먼가여 ^^;;이건 다른 프로시저의 부분임당.. setmapmode(printer.Handle,mm_lometric);
글면 존답변 기다림당..^^;;
빠이여...
Number of pixels per logical inch along the screen height.
이라고 하네요
getdevicecaps(handle,LOGPIXELSY);
아마도 논리적인 픽셀단위로 높이를 뜻하는 것같네요
getdevicecaps는 장치관련한여 두번째 인자를 통하여 장치에 대한 여러가지
사항들을 구할 수 있는 win32 API 입니다.(책자또는 win32 help 참고)
setmapmode도 두번째 인자를 통하여 실제 프린터 캔바스의 좌표의 단위
를 빠구어 주는 기능을 하는 것지여
이것도 두번째 인자를 통하여 단위가 틀려지는데
마찬가지로 win32 api를 참고하세요
setmapmode를 수행하고 나서는
아래쓰인 textout, lineto , moveto 등등의 좌표가 들어가는 부분이
해당 setmapmode의 셋팅에 따라서 틀려지게 되겠지여
아래 인자의 mm_lometric은 0.1mm 단위로 찍는것이조
x:100 y100 ==> x:10mm, y:10mm가 되겠찌여
아차실수 단위 y좌표는 -가 앞에 붙습니다.
사발우성 wrote:
> 안뇽하신가여.. 고수님들... 오늘도 질문임당...뽀하하하하...
> 지금 프린트 부분을 코드로 구현하고 있슴당.. 근디 아래의 소스중에소 모르는 부분이 있어서리.. 궁금해서리 질문을 헐..--;;
> 구람 존답변 부탁함당....^^;;
> procedure Tform1.pr(canvas:Tcanvas);
> var
> i: integer;
> begin
> with canvas do
> begin
> Font.size := round(8*300/getdevicecaps(handle,LOGPIXELSY));// 이부분은 몬가여^^;;
> font.style := [];
> pen.width := 2;
> rectangle(255,-510,2820,-1900);
> font.Size := 14;
> textout(1395,-150,'TEST');
> moveto(2311,-290);
> lineto(2820,-290);
> moveto(2311,-290);
> lineto(2311,-490);
> moveto(2820,-290);
> lineto(2820,-490);
> moveto(2311,-490);
> lineto(2820,-490);
>
>
> 글구 이건또 먼가여 ^^;;이건 다른 프로시저의 부분임당.. setmapmode(printer.Handle,mm_lometric);
> 글면 존답변 기다림당..^^;;
>
> 빠이여...