如何识别Firemonkey中鼠标单击位置的像素颜色?

时间:2016-12-01 22:02:56

标签: delphi firemonkey vcl

我在VCL做过类似的事情。我绝不是专业人士,我不认为这是最好的方式,但这就是我所拥有的:

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

我基本上寻求一些帮助,有效地将此代码移植到firemonkey中,以获得相同的结果,考虑到图像/画布等似乎有点不同,我对此非常不熟悉。

提前致谢。

1 个答案:

答案 0 :(得分: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;