trichview.com

trichview.support.examples




Re: Example: Page size


Return to index


Author

Message

WorkSmart - Email

Posted: 06/03/2003 10:14:14


Will there ever be a wisiwig version so it can scale....


mike


"Sergey Tkachenko" <svt@trichview.com> wrote in message

news:3ea17f74@support.torry.net...

> This code allows to resize RichView so that it _approximately_ corresponds

> to the size on the page.

> Wrapping in the same places as on the paper is not 100% guaranteed.

>

> Using:

>

> var w, h: Integer;

>

> // rvoClientTextWidth must be excluded from RichViewEdit1.Options.

>

> GetPageSize(RVPrint1, w,h);

> RichViewEdit1.MaxTextWidth :=

>   w-RichViewEdit1.LeftMargin-RichViewEdit1.RightMargin;

> RichViewEdit1.Format;

>

>

> procedure GetPageSize(RVPrint: TRVPrint;

>                             var Width, Height: Integer);

> var DC: HDC;

>     phoX, phoY, phW, phH, lpy, lpx, LM, TM, RM, BM: Integer;

> begin

>   DC := RV_GetPrinterDC; // from PtblRV unit

>

>   Width  := GetDeviceCaps(DC, HORZRES);

>   Height := GetDeviceCaps(DC, VERTRES);

>

>   lpy := GetDeviceCaps(DC, LOGPIXELSY);

>   lpx := GetDeviceCaps(DC, LOGPIXELSX);

>

>   phoX := GetDeviceCaps(DC, PHYSICALOFFSETX);

>   phoY := GetDeviceCaps(DC, PHYSICALOFFSETY);

>   phW  := GetDeviceCaps(DC, PHYSICALWIDTH);

>   phH  := GetDeviceCaps(DC, PHYSICALHEIGHT);

>

>   LM := MulDiv(RVPrint.LeftMarginMM,   5*lpx, 127)- phoX;

>   TM := MulDiv(RVPrint.TopMarginMM,    5*lpy, 127)- phoY;

>   RM := MulDiv(RVPrint.RightMarginMM,  5*lpx, 127)- (phW-(phoX+Width));

>   BM := MulDiv(RVPrint.BottomMarginMM, 5*lpy, 127)- (phH-(phoY+Height));

>

>   if LM<0 then LM := 0;

>   if TM<0 then TM := 0;

>   if RM<0 then RM := 0;

>   if BM<0 then BM := 0;

>

>   dec(Width, LM+RM);

>   dec(Height, TM+BM);

>

>   DeleteDC(DC);

>

>   DC := GetDC(0);

>   Width  := MulDiv(Width,  GetDeviceCaps(DC, LOGPIXELSX), lpx);

>   Height := MulDiv(Height, GetDeviceCaps(DC, LOGPIXELSY), lpy);

>   ReleaseDC(0, DC);

>

> end;

>

>





Powered by ABC Amber Outlook Express Converter