x,y都是从数据库中取值,然后所有点输出到一个image控件上,
for i:=0 to di do
begin Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from ip.db where id='+IntToStr(i));
Query1.Open;
name:=Query1.fieldbyname('名称').AsString;
x:=Query1.fieldbyname('x').AsInteger;
y:=Query1.fieldbyname('y').AsInteger;
Canvas.Brush.Style:=bsClear;
image1.Canvas.TextOut(x,y,name);
end;
怎么给image1.Canvas.TextOut(x,y,name)输出的点加上一个事件,点击这个点完成我需要的功能。
for i:=0 to di do
begin Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from ip.db where id='+IntToStr(i));
Query1.Open;
name:=Query1.fieldbyname('名称').AsString;
x:=Query1.fieldbyname('x').AsInteger;
y:=Query1.fieldbyname('y').AsInteger;
Canvas.Brush.Style:=bsClear;
image1.Canvas.TextOut(x,y,name);
end;
怎么给image1.Canvas.TextOut(x,y,name)输出的点加上一个事件,点击这个点完成我需要的功能。
Y: Integer);
beginend;
加到这里面试一下
估计只能用image.onclick,然后判断鼠标位置。
Zy:=Query1.fieldbyname('y').AsInteger;
那么:procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if (Zx=x) and (Zx=Y) then
begin //这就是你的事件啦! end;
end;
Shift: TShiftState; X, Y: Integer);
beginend;
Shift: TShiftState; X, Y: Integer);
var
iX,iY : Integer;
begin
for i:=0 to di do
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select * from ip.db where id='+IntToStr(i));
Query1.Open;
name:=Query1.fieldbyname('名称').AsString;
x:=Query1.fieldbyname('x').AsInteger;
y:=Query1.fieldbyname('y').AsInteger;
if (iX = X) and (iY = Y) then
begin
Canvas.Brush.Style:=bsClear;
image1.Canvas.TextOut(x,y,name);
end;
end;
end;
x3:=Query1.fieldbyname('x').AsInteger;
y3:=Query1.fieldbyname('y').AsInteger;
x1:=strtoint(edit1.Text);
y1:=strtoint(edit2.Text);x5:=x1-40;
y5:=y1+10;
if (x1>x3) and (x3>x5) and(y1<y3) and(y3<y5) then