Bonjour,
Mon besoin est simple , j'ai une Form en FMX qui possede un TPanel et je veux dessiner une ligne dans le TPanel.
Mon TPanel possede les props suivantes
Width = 300
Height = 200
La procedure qui dessine est la suivante :
On part bien de 0,0 qui devrait etre l'origine du composant Panel et aller au point opposé en bas à droite. Cette procédure devrait dessiner une diagonale.
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 procedure TForm3.Button1Click(Sender: TObject); var aCanvas:TCanvas; begin aCanvas := Panel1.Canvas; if aCanvas.BeginScene then try aCanvas.Stroke.Thickness := 1.5; aCanvas.Stroke.Kind := TBrushKind.bkSolid; aCanvas.Fill.Color := TAlphaColorRec.Black; aCanvas.Fill.Kind := TBrushKind.bkSolid; aCanvas.DrawLine(PointF(0, 0), PointF(300, 200),1); finally aCanvas.EndScene; end; end;
Or le résultat est que la droite dessinée part bien de 0,0 mais celui de la Form propriétaire du TPanel et pas du TPanel lui-même.
De plus quand on redimensionne la fenetre, le trait precedement tracé disparait.
Question 1) Chaque composant ne possede t il pas son propre Canvas ou bien partage il celui de la Form en dessous
Question 2) Y a t il un moyen de changer la gestion de l origine du Canvas d un composant sans faire un changement de repere à la mano
Question 3) Que faire pour persister le trait pour qu il ne disparaisse pas lors d'un redimensionement de fenetre
Merci d'avance.
Partager