Bonjour à tous.
Je voudrais pouvoir connaitre la couleur d'un pixel cliqué par la souris d'un TRect
Après pas mal de recherches, je suis arrivé au code suivant :
Je suis obligé de passer par un screenshot car RectCurve.Canvas.Bitmap est égal à nil
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 procedure TFGrapher.ICurveMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); var PixelColor: TAlphaColor; Bitmap: TBitmap; BitMapData: TBitmapData; begin Bitmap := RectCurve.MakeScreenshot; // on cherche si on a cliqué sur une des courbes if Bitmap.Map(TMapAccess.maRead, BitMapData) then PixelColor := BitMapData.GetPixel(round(X), round(Y)); Bitmap.UnMap(BitMapData); if (PixelColor = EquationColor) then begin SelectedCurve := k; ICurve.Repaint; end; end;
Ça marche sous win mais sous android, la création du screenshoot est hyper longue et
tout le programme s'en trouve perturbé.
Connaissez vous un autre moyen de récupérer ce pixel?
Merci
Partager