怎样将图形画在离鼠标点击处最近的网格交叉点上(100分)

  • 主题发起人 主题发起人 zzzh
  • 开始时间 开始时间
Z

zzzh

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠好!

我是一名围棋爱好者,最近想用Delphi写一个围棋程序,代码如下:

unit Unit1;

interface
.....
var
Point: array[1..19] of array[1..19] of TPoint;
.....

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
var
i,j: Integer;
begin
for i:= 1 to 19 do
begin
for j:= 1 to 19 do
begin
Point[i,j].x:= 10+(i-1)*20;
Point[i,j].y:= 10+(j-1)*20;
end;
end;
end;

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
i,j: Integer;
begin
for i:= 1 to 19 do
begin
for j:= 1 to 19 do
begin
??? if (X>(Point[i,j].x-10)) and (X<(Point[i,j].x+10))
and (Y>(Point[i,j].y-10)) and (Y<(Point[i,j].y+10)) then ???
begin
......

但运行时,系统说???间语句为Incompatible types,我百思不得其解,它们不都是Integer类型吗?
请各位大侠指教。小弟在此先谢过了。

补充:
我收到了一些朋友寄来的回答信,非常感谢。
看来我的问题问得不够明白,此问题应该为‘怎样将图形画在离鼠标点击处最近的网格交叉点上’。
另外,我曾经试过在???间语句里的判断句两旁加括号,但系统还是说Incompatible types。
不过,括号应该是必须要有的,我已更正。





礼!

zh
wxzhuhua@wx88.net
 
procedure TForm1.Image1MouseDown(...);
var
xx, yy: Integer;
begin
xx := X div 20;
yy := Y div 20;
Image1.Canvas.Ellipse(xx * 20 + 2, yy * 20 + 2, xx * 20 + 18, yy * 20 + 18);
end;
 
多人接受答案了。
 

Similar threads

后退
顶部