# Class TFMXBufferPanel

Description
Hierarchy
Fields
Methods
Properties

## Unit

uCEFFMXBufferPanel

## Declaration

`type TFMXBufferPanel = class(TControl)`

## Description

TBufferPanel is used by FMX applications with browsers in OSR mode to draw the browser contents. See the FMXExternalPumpBrowser demo for more details.

## Hierarchy

- TControl
- TFMXBufferPanel

## Overview

### Fields

| `FMutex: THandle;`
| `FBuffer: TBitmap;`
| `FScanlineSize: integer;`
| `FColor: TAlphaColor;`
| `FHighSpeedDrawing: boolean;`
| `FOnDialogKey: TDialogKeyEvent;`
| `FForcedDeviceScaleFactor: single;`

### Methods

| `procedure CreateSyncObj;`
| `procedure DestroySyncObj;`
| `procedure DestroyBuffer;`
| `function GetScreenScale: single; virtual;`
| `function GetBufferWidth: integer;`
| `function GetBufferHeight: integer;`
| `function GetParentForm: TCustomForm;`
| `function GetParentFormHandle: TCefWindowHandle;`
| `function GetRealScreenScale(var aResultScale : single) : boolean; virtual;`
| `function CopyBuffer: boolean;`
| `function SaveBufferToFile(const aFilename : string) : boolean;`
| `procedure Paint; override;`
| `procedure DialogKey(var Key: Word; Shift: TShiftState); override;`
| `constructor Create(AOwner: TComponent); override;`
| `destructor Destroy; override;`
| `procedure AfterConstruction; override;`
| `function SaveToFile(const aFilename : string) : boolean;`
| `procedure InvalidatePanel;`
| `function BeginBufferDraw: boolean;`
| `procedure EndBufferDraw;`
| `procedure BufferDraw(const aBitmap : TBitmap; const aSrcRect, aDstRect : TRectF);`
| `function UpdateBufferDimensions(aWidth, aHeight : integer) : boolean;`
| `function BufferIsResized(aUseMutex : boolean = True) : boolean;`
| `function ScreenToClient(aPoint : TPoint) : TPoint; overload;`
| `function ScreenToClient(aPoint : TPointF) : TPointF; overload;`
| `function ClientToScreen(aPoint : TPoint) : TPoint; overload;`
| `function ClientToScreen(aPoint : TPointF) : TPointF; overload;`

### Properties

| `property Buffer : TBitmap read FBuffer;`
| `property ScanlineSize : integer read FScanlineSize;`
| `property BufferWidth : integer read GetBufferWidth;`
| `property BufferHeight : integer read GetBufferHeight;`
| `property ScreenScale : single read GetScreenScale;`
| `property ForcedDeviceScaleFactor : single read FForcedDeviceScaleFactor write FForcedDeviceScaleFactor;`
| `property Align;`
| `property Anchors;`
| `property Visible;`
| `property Enabled;`
| `property TabOrder;`
| `property Color : TAlphaColor read FColor write FColor default claWhite;`
| `property HighSpeedDrawing : boolean read FHighSpeedDrawing write FHighSpeedDrawing default True;`
| `property Hint;`
| `property ShowHint;`
| `property OnEnter;`
| `property OnExit;`
| `property OnResize;`
| `property OnClick;`
| `property OnMouseDown;`
| `property OnMouseMove;`
| `property OnMouseUp;`
| `property OnMouseEnter;`
| `property OnMouseLeave;`
| `property OnMouseWheel;`
| `property OnKeyUp;`
| `property OnKeyDown;`
| `property OnDialogKey : TDialogKeyEvent read FOnDialogKey write FOnDialogKey;`

## Description

### Fields

| `FMutex: THandle;`
This item has no description.

| `FBuffer: TBitmap;`
This item has no description.

| `FScanlineSize: integer;`
This item has no description.

| `FColor: TAlphaColor;`
This item has no description.

| `FHighSpeedDrawing: boolean;`
This item has no description.

| `FOnDialogKey: TDialogKeyEvent;`
This item has no description.

| `FForcedDeviceScaleFactor: single;`
This item has no description.

### Methods

| `procedure CreateSyncObj;`
This item has no description.

| `procedure DestroySyncObj;`
This item has no description.

| `procedure DestroyBuffer;`
This item has no description.

| `function GetScreenScale: single; virtual;`
This item has no description.

| `function GetBufferWidth: integer;`
This item has no description.

| `function GetBufferHeight: integer;`
This item has no description.

| `function GetParentForm: TCustomForm;`
This item has no description.

| `function GetParentFormHandle: TCefWindowHandle;`
This item has no description.

| `function GetRealScreenScale(var aResultScale : single) : boolean; virtual;`
This item has no description.

| `function CopyBuffer: boolean;`
This item has no description.

| `function SaveBufferToFile(const aFilename : string) : boolean;`
This item has no description.

| `procedure Paint; override;`
This item has no description.

| `procedure DialogKey(var Key: Word; Shift: TShiftState); override;`
This item has no description.

| `constructor Create(AOwner: TComponent); override;`
This item has no description.

| `destructor Destroy; override;`
This item has no description.

| `procedure AfterConstruction; override;`
This item has no description.

| `function SaveToFile(const aFilename : string) : boolean;`
Save the visible web contents as a bitmap file.

| `procedure InvalidatePanel;`
Invalidate this panel.

| `function BeginBufferDraw: boolean;`
Acquires the synchronization object before drawing into the background bitmap.

| `procedure EndBufferDraw;`
Releases the synchronization object after drawing into the background bitmap.

| `procedure BufferDraw(const aBitmap : TBitmap; const aSrcRect, aDstRect : TRectF);`

Draws a part of aBitmap into the background bitmap buffer at the specified rectangle.

###### Parameters

aBitmap
  Bitmap that will be drawn into the background bitmap.
aSrcRect
  Rectangle that defines the area of aBitmap that will be drawn into the background bitmap.
aDstRect
  Rectangle that defines the area of the background bitmap where aBitmap will be drawn.

| `function UpdateBufferDimensions(aWidth, aHeight : integer) : boolean;`
Update the background bitmap size.

| `function BufferIsResized(aUseMutex : boolean = True) : boolean;`
Check if the background image buffers have the same dimensions as this panel. Returns true if they have the same size.

| `function ScreenToClient(aPoint : TPoint) : TPoint; overload;`
Convert a point from the screen coordinate system to the client coordinate system.

| `function ScreenToClient(aPoint : TPointF) : TPointF; overload;`
Convert a point from the screen coordinate system to the client coordinate system.

| `function ClientToScreen(aPoint : TPoint) : TPoint; overload;`
Convert a point from the client coordinate system to the screen coordinate system.

| `function ClientToScreen(aPoint : TPointF) : TPointF; overload;`
Convert a point from the client coordinate system to the screen coordinate system.

### Properties

| `property Buffer : TBitmap read FBuffer;`
Background bitmap.

| `property ScanlineSize : integer read FScanlineSize;`
Returns the scanline size.

| `property BufferWidth : integer read GetBufferWidth;`
Image width.

| `property BufferHeight : integer read GetBufferHeight;`
Image height.

| `property ScreenScale : single read GetScreenScale;`
Returns the screen scale.

| `property ForcedDeviceScaleFactor : single read FForcedDeviceScaleFactor write FForcedDeviceScaleFactor;`
Screen scale value used instead of the real one.

| `property Align;`
This item has no description.

| `property Anchors;`
This item has no description.

| `property Visible;`
This item has no description.

| `property Enabled;`
This item has no description.

| `property TabOrder;`
This item has no description.

| `property Color : TAlphaColor read FColor write FColor default claWhite;`
Color used to clear the panel canvas in the Paint method.

| `property HighSpeedDrawing : boolean read FHighSpeedDrawing write FHighSpeedDrawing default True;`
Set HighSpeedDrawing to True to draw the buffer to the canvas using a high speed interpolation mode.

| `property Hint;`
This item has no description.

| `property ShowHint;`
This item has no description.

| `property OnEnter;`
This item has no description.

| `property OnExit;`
This item has no description.

| `property OnResize;`
This item has no description.

| `property OnClick;`
This item has no description.

| `property OnMouseDown;`
This item has no description.

| `property OnMouseMove;`
This item has no description.

| `property OnMouseUp;`
This item has no description.

| `property OnMouseEnter;`
This item has no description.

| `property OnMouseLeave;`
This item has no description.

| `property OnMouseWheel;`
This item has no description.

| `property OnKeyUp;`
This item has no description.

| `property OnKeyDown;`
This item has no description.

| `property OnDialogKey : TDialogKeyEvent read FOnDialogKey write FOnDialogKey;`
Event triggered before the DialogKey.

Generated by PasDoc 0.17.0.snapshot.