Q&A

  • 흐... 소스를 보다가 모르는 부분이 있어서리.. 올림당...^^;;
안뇽하신가여.. 고수님들... 오늘도 질문임당...뽀하하하하...

지금 프린트 부분을 코드로 구현하고 있슴당.. 근디 아래의 소스중에소 모르는 부분이 있어서리.. 궁금해서리 질문을 헐..--;;

구람 존답변 부탁함당....^^;;

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);

글면 존답변 기다림당..^^;;



빠이여...

1  COMMENTS
  • Profile
    김하늘 2000.11.07 18:38
    일단 두부분 다 win32 API 인데요...

    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);

    > 글면 존답변 기다림당..^^;;

    >

    > 빠이여...