Bjr à tous et merci pour votre aide quant à mes démêlés avec le dessin sur FMX Android. J'arrive enfin à mes souhaits:
Maintenant, mon projet comporte un outil à main levée et lorsqu'il est activé, je désire que la trace de mon doigt / souris apparaisse sur ma vue, qui est un TPanel
Dans le OnMouseMove:
Dois-je créer un TImage temporaire ? Autres méthodes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 procedure TTabbedForm.pnlPlanMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Single); var NewPos: TPoint2Df; MousePos: TPointF; begin if (not FDocTopoOpenedAndReady) then exit; case FModeTravailVuePlan of mtpREADY : pass; mtpNEW_ANNOTATION : pass; mtpNEW_POLYLINE : pass; mtpDRAWING_POLYLINE: begin MousePos.X := X; MousePos.Y := Y; pnlPlan.Canvas.DrawLine(FMousePos .X, FMousePos .Y, MousePos.X, MousePos.Y, 1); // /!\ L'opacité est définie sur [0.0; 1.0] et non [0; 255] FMousePos := MousePos; // sauvegarde de la position actuelle de la souris end; mtpDELETE_POLYLINE : pass; mtpDELETE_ANNOTATION: pass; else pass; end; end;
Quel est le rôle de TCanvas.BeginScene / TCanvas.EndScene puisque mon code de tracé du dessin (événement TPanel.OnPaint) fonctionne sans ?
Trace laissée par la souris après armement du mode 'Dessin à main levée' dans un OnMouseDown:
Après désarmement dans un OnMouseUp et redessin:
cdlt
Partager