Difference between revisions of "TBGRABitmap text functions"

From Free Pascal wiki
Jump to navigationJump to search
(→‎Drawing: descriptions)
Line 36: Line 36:
  
 
<syntaxhighlight>  procedure TextOut(x, y: single; sUTF8: string; c: TBGRAPixel; align: TAlignment);</syntaxhighlight>
 
<syntaxhighlight>  procedure TextOut(x, y: single; sUTF8: string; c: TBGRAPixel; align: TAlignment);</syntaxhighlight>
 +
Draws the UTF8 encoded string, with color ''c''. If ''align'' is taLeftJustify, (''x'',''y'') is the top-left corner. If ''align'' is taCenter, (''x'',''y'') is at the top and middle of the text. If ''align'' is taRightJustify, (''x'',''y'') is the top-right corner. The value of ''FontOrientation'' is taken into account, so that the text may be rotated.
 
<syntaxhighlight>  procedure TextOut(x, y: single; sUTF8: string; texture: IBGRAScanner; align: TAlignment);</syntaxhighlight>
 
<syntaxhighlight>  procedure TextOut(x, y: single; sUTF8: string; texture: IBGRAScanner; align: TAlignment);</syntaxhighlight>
<syntaxhighlight>  procedure TextOutAngle(x, y: single; orientationTenthDegCCW: integer; sUTF8: string; c: TBGRAPixel; align: TAlignment);</syntaxhighlight>
+
Same as above functions, except that the text is filled using ''texture''. The value of ''FontOrientation'' is taken into account, so that the text may be rotated.
<syntaxhighlight>  procedure TextOutAngle(x, y: single; orientationTenthDegCCW: integer; sUTF8: string; texture: IBGRAScanner; align: TAlignment);</syntaxhighlight>
+
<syntaxhighlight>  procedure TextOutAngle(x, y: single; orientationTenthDegCCW: integer; sUTF8: string; c: TBGRAPixel; align: TAlignment);
<syntaxhighlight>  procedure TextOut(x, y: single; sUTF8: string; c: TBGRAPixel);</syntaxhighlight>
+
  procedure TextOutAngle(x, y: single; orientationTenthDegCCW: integer; sUTF8: string; texture: IBGRAScanner; align: TAlignment);</syntaxhighlight>
<syntaxhighlight>  procedure TextOut(x, y: single; sUTF8: string; c: TColor);</syntaxhighlight>
+
Same as above, except that the orientation is specified, overriding the value of the property ''FontOrientation''.
<syntaxhighlight>  procedure TextOut(x, y: single; sUTF8: string; texture: IBGRAScanner);</syntaxhighlight>
+
<syntaxhighlight>  procedure TextOut(x, y: single; sUTF8: string; c: TBGRAPixel);
<syntaxhighlight>  procedure TextRect(ARect: TRect; x, y: integer; sUTF8: string; style: TTextStyle; c: TBGRAPixel);</syntaxhighlight>
+
  procedure TextOut(x, y: single; sUTF8: string; c: TColor);
<syntaxhighlight>  procedure TextRect(ARect: TRect; x, y: integer; sUTF8: string; style: TTextStyle; texture: IBGRAScanner);</syntaxhighlight>
+
  procedure TextOut(x, y: single; sUTF8: string; texture: IBGRAScanner);</syntaxhighlight>
<syntaxhighlight> procedure TextRect(ARect: TRect; sUTF8: string; halign: TAlignment; valign: TTextLayout; c: TBGRAPixel);</syntaxhighlight>
+
Draw the UTF8 encoded string, (''x'',''y'') being the top-left corner. The color ''c'' or ''texture'' is used to fill the text. The value of ''FontOrientation'' is taken into account, so that the text may be rotated.
<syntaxhighlight>  procedure TextRect(ARect: TRect; sUTF8: string; halign: TAlignment; valign: TTextLayout; texture: IBGRAScanner);</syntaxhighlight>
+
<syntaxhighlight>  procedure TextRect(ARect: TRect; x, y: integer; sUTF8: string; style: TTextStyle; c: TBGRAPixel);
 +
  procedure TextRect(ARect: TRect; x, y: integer; sUTF8: string; style: TTextStyle; texture: IBGRAScanner);</syntaxhighlight>
 +
Draw the UTF8 encoded string at the coordinate (''x'',''y''), clipped inside the rectangle ''ARect''. Additional style information is provided by the ''style'' parameter. The color ''c'' or ''texture'' is used to fill the text. No rotation is applied.
 +
<syntaxhighlight>   procedure TextRect(ARect: TRect; sUTF8: string; halign: TAlignment; valign: TTextLayout; c: TBGRAPixel);
 +
  procedure TextRect(ARect: TRect; sUTF8: string; halign: TAlignment; valign: TTextLayout; texture: IBGRAScanner);</syntaxhighlight>
 +
Draw the UTF8 encoded string in the rectangle ''ARect''. Text is wrapped if necessary. The position depends on the specified horizontal alignment ''halign'' and vertical alignement ''valign''. The color ''c'' or ''texture'' is used to fill the text. No rotation is applied.
  
 
=== Measuring ===
 
=== Measuring ===

Revision as of 02:45, 24 March 2015

Here are the text functions the TBGRABitmap class.

Font name and style

  property FontName: string; read write;

Specifies the font to use. Unless the font renderer accept otherwise, the name is in human readable form, like 'Arial', 'Times New Roman', ...

  property FontStyle: TFontStyles; read write;

Specifies the set of styles to be applied to the font. These can be fsBold, fsItalic, fsStrikeOut, fsUnderline. So the value [fsBold,fsItalic] means that the font must be bold and italic.

  property FontOrientation: integer; read write;

Specifies the rotation of the text, for functions that support text rotation. It is expressed in tenth of degrees, positive values going counter-clockwise.

  property FontHeight: integer; read write;

Specifies the height of the font without taking into account additional line spacing. A negative value means that it is the full height instead (see below).

  property FontFullHeight: integer; read write;

Specifies the height of the font, taking into account the additional line spacing defined for the font.

Font quality

  property FontQuality : TBGRAFontQuality; read write;

Specifies the quality of rendering. The following values are possible :

- fqSystem: use system rendering. It is fast however it may be not be smoothed.

- fqSystemClearType: use system rendering with ClearType. This quality is of course better than fqSystem however it may not be much smoother.

- fqFineAntialiasing: garanties a high quality antialiasing. This is slower.

- fqFineClearTypeRGB: garanties a high quality antialiasing with ClearType. The order of the color in the LCD screen is supposed to be un red/green/blue order.

- fqFineClearTypeBGR: same as above, except the color of the LCD screen is supposed to be in blue/green/red order.

  property FontAntialias: Boolean; read write;

Simplified version to specify the quality.

  property FontRenderer: TBGRACustomFontRenderer; read write;

Specifies the font renderer. By default it is an instance of TLCLFontRenderer of unit BGRAText. Other renderers are provided in BGRATextFX unit and BGRAVectorize unit.

Drawing

  procedure TextOut(x, y: single; sUTF8: string; c: TBGRAPixel; align: TAlignment);

Draws the UTF8 encoded string, with color c. If align is taLeftJustify, (x,y) is the top-left corner. If align is taCenter, (x,y) is at the top and middle of the text. If align is taRightJustify, (x,y) is the top-right corner. The value of FontOrientation is taken into account, so that the text may be rotated.

  procedure TextOut(x, y: single; sUTF8: string; texture: IBGRAScanner; align: TAlignment);

Same as above functions, except that the text is filled using texture. The value of FontOrientation is taken into account, so that the text may be rotated.

  procedure TextOutAngle(x, y: single; orientationTenthDegCCW: integer; sUTF8: string; c: TBGRAPixel; align: TAlignment);
  procedure TextOutAngle(x, y: single; orientationTenthDegCCW: integer; sUTF8: string; texture: IBGRAScanner; align: TAlignment);

Same as above, except that the orientation is specified, overriding the value of the property FontOrientation.

  procedure TextOut(x, y: single; sUTF8: string; c: TBGRAPixel);
  procedure TextOut(x, y: single; sUTF8: string; c: TColor);
  procedure TextOut(x, y: single; sUTF8: string; texture: IBGRAScanner);

Draw the UTF8 encoded string, (x,y) being the top-left corner. The color c or texture is used to fill the text. The value of FontOrientation is taken into account, so that the text may be rotated.

  procedure TextRect(ARect: TRect; x, y: integer; sUTF8: string; style: TTextStyle; c: TBGRAPixel);
  procedure TextRect(ARect: TRect; x, y: integer; sUTF8: string; style: TTextStyle; texture: IBGRAScanner);

Draw the UTF8 encoded string at the coordinate (x,y), clipped inside the rectangle ARect. Additional style information is provided by the style parameter. The color c or texture is used to fill the text. No rotation is applied.

    procedure TextRect(ARect: TRect; sUTF8: string; halign: TAlignment; valign: TTextLayout; c: TBGRAPixel);
  procedure TextRect(ARect: TRect; sUTF8: string; halign: TAlignment; valign: TTextLayout; texture: IBGRAScanner);

Draw the UTF8 encoded string in the rectangle ARect. Text is wrapped if necessary. The position depends on the specified horizontal alignment halign and vertical alignement valign. The color c or texture is used to fill the text. No rotation is applied.

Measuring

  function TextSize(sUTF8: string): TSize;

Returns the total size of the string provided using the current font. Orientation is not taken into account, so that the width is along the text.

  property FontPixelMetric: TFontPixelMetric;

Returns measurement for the current font in pixels.