This component is deprecated.

Developers should use roFont methods (GetOneLineHeight and GetOneLineWidth).

 

The roFontMetrics object allows you to get display size information for a specific font returned by the roFontRegistry.Get() method.

Supported Interfaces

Description

In order to use this object, you must first initialize the roFontMetrics object with a font name that had been previously registered with the roFontRegistry, then the total rendered size of strings in that font can be returned by roFontMetrics.Size().
This object is created with a string that represents the font to use in its size calculations:

  • CreateObject("roFontMetrics", String font)
Example: simple use of roFontRegistry and roFontMetrics to render a string on the roImageCanvas
helloString = "Hello ImageCanvas" 

fontReg = CreateObject("roFontRegistry")
fontReg.Register("pkg:/fonts/LCDMono.ttf")
font = fontReg.Get("LCDMono",36,50,false) ' 36pt, 50 is normal
                                          ' weight, no italics 

fontMetrics = CreateObject("roFontMetrics", font) 
stringSize = fontMetrics.size(helloString) 

canvasItem = { 
	Text:helloString
	TextAttrs:{Color:"#FFCCCCCC", Font:font,  
	HAlign:"HCenter",
	VAlign:"VCenter", Direction:"LeftToRight"}
	TargetRect:{x:390,y:357, w:stringSize.w,h:stringSize.h}
} 

canvas = CreateObject("roImageCanvas")
port = CreateObject("roMessagePort")
canvas.SetMessagePort(m.port)
'Set opaque background
canvas.SetLayer(0, {Color:"#FF000000", CompositionMode:"Source"}) 
canvas.SetRequireAllImagesToDraw(true)
canvas.SetLayer(1, canvasItem)
canvas.Show()