FMX.Graphics.TCanvas.BeginScene
Delphi
function BeginScene(AClipRects: PClipRects = nil; AContextHandle: THandle = 0): Boolean;
C++
bool __fastcall BeginScene(PClipRects AClipRects = (PClipRects)(0x0), System::NativeUInt AContextHandle = (unsigned)(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.