FMX.Graphics.TCanvas.BeginScene
Delphi
function BeginScene(AClipRects: PClipRects = nil; AContextHandle: THandle = 0): Boolean;
C++
bool __fastcall BeginScene(PClipRects AClipRects = (PClipRects)(0x0), NativeUInt AContextHandle = (NativeUInt)(0x0));
Propriétés
Type | Visibilité | Source | Unité | Parent |
---|---|---|---|---|
function | public | FMX.Graphics.pas FMX.Graphics.hpp |
FMX.Graphics | TCanvas |
Description
Notifie l'objet TCanvas que le dessin peut commencer.
Appelez BeginScene avant de dessiner sur le TCanvas.
Pour terminer la session de dessin, appelez EndScene.
Si une application a appelé BeginScene et que BeginScene renvoie True, l'application doit appeler EndScene. Ce qui signifie que le modèle d'appel recommandé doit ressembler à ce qui suit :
if Canvas.BeginScene then try Canvas.xxx //drawing image operations ... finally Canvas.EndScene; end;
Chaque fois que l'objet TCanvas appelle BeginScene et que BeginScene renvoie True, la valeur de la propriété BeginSceneCount est augmentée de 1. Chaque fois que l'objet TCanvas appelle EndScene, la valeur de la propriété BeginSceneCount est réduite de 1. BeginScene utilise BeginSceneCount pour garantir que l'objet TCanvas n'a pas plus d'un dessin initialisé à un moment donné.
TCanvas
et toutes les sous-classes prennent en charge les environnements multi-thread mais ne supportent pas l'exécution simultanée des instances de Canvas. Cela signifie que quand un Canvas appelle BeginScene
, l'exécution du code à l'intérieur de cette section BeginScene...EndScene
bloque toute autre tâche qui tente de traiter le dessin, y compris le dessin sur d'autres canevas. Ecrivez des blocs BeginScene...EndScene
aussi courts que possible pour éviter de bloquer d'autres threads.