2016-12-01 10 views
0

Я сделал что-то подобное в VCL. Я не буду ни в коем случае профессионал, и я не ожидаю, что это лучший способ сделать это, но вот что я имел:Как определить цвет пикселя в месте щелчка мыши в Firemonkey?

pt := TImage(Sender).ScreenToClient(Mouse.CursorPos); 
color := image1.Canvas.Pixels[pt.X, pt.Y]; 

Я в основном ищут некоторую помощь в эффективном переносе этого кода в firemonkey, чтобы получить тот же результат, учитывая изображения/холсты и т. д., кажется, работает немного по-другому, и я довольно незнакома с ним.

Заранее спасибо.

ответ

0

Я думаю, вам нужно что-то вроде этого:

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; 
    Shift: TShiftState; X, Y: Single); 
var 
    Cl: TAlphaColor; 
    Dt: TBitmapData; 
begin 
    if Image1.Bitmap.Map(TMapAccess.maRead, Dt) then 
    begin 
    Cl:= Dt.GetPixel(Trunc(X), Trunc(Y)); 
    Image1.Bitmap.Unmap(Dt); 
    end; 
end;