trichview.support.examples
Re: Example: Page size |
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" <[email protected]> wrote in message news:[email protected]... > 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