输入x,y 值,怎样在图形上亮点显示出来呢?(100分)

  • 主题发起人 主题发起人 西凉老猫
  • 开始时间 开始时间
西

西凉老猫

Unregistered / Unconfirmed
GUEST, unregistred user!
输入x,y 值,怎样在图形上亮点显示出来呢?
 
把问题说清楚一点行吗?是不是在一个输入框中输入数值后,对应的图形就变化?
 
使用 image1.Canvas.Pixels[x, y]
并设置
image1.Canvas.Pen.Mode := pmNotXor;
image1.Canvas.Pen.Color := Clred;

这样在x、y坐标处就会显示红亮点,

好像没多大用处,因为一点几乎看不清,范围改大点

 
to hamsoft
我想让那个红点一闪一闪,怎么作?
 
我想应该编一个函数来处理给定点的周围的一个范围全部为红色
要是想让它闪可能要用TTime了
 
我觉得也是,但是就是不会作!
楼上的兄弟你会吗?
 
关键的部分如下,我已经在DELPHI5。0测试过了。

procedure TForm1.Timer1Timer(Sender: TObject);
var x,y:integer;

begin
x:=strtoint(edit1.text);
y:=strtoint(edit2.text);
if i=1 then
begin canvas.pen.style:=psclear;
canvas.brush.color:=clbtnface;
canvas.ellipse(x-10,y-10,x+10,y+10);
i:=0;
end
else
begin
i:=1;canvas.pen.style:=psclear;
canvas.brush.color:=$0000ff;
canvas.ellipse(x-10,y-10,x+10,y+10);
end;
end;
 
不要使用
canvas.pen.style:=psclear;
使用 pmNotXor 就行了,
 
dibrave的方法不错,就是声明变量时少了一个,应该这样:
procedure TForm1.Timer1Timer(Sender: TObject);
var x,y,[red]i[/red]:integer;

begin
x:=strtoint(edit1.text);
y:=strtoint(edit2.text);
if i=1 then
begin canvas.pen.style:=psclear;
canvas.brush.color:=clbtnface;
canvas.ellipse(x-10,y-10,x+10,y+10);
i:=0;
end
else
begin
i:=1;canvas.pen.style:=psclear;
canvas.brush.color:=$0000ff;
canvas.ellipse(x-10,y-10,x+10,y+10);
end;
end;
 
不对,那个红点没有一闪一闪
 
不可能吧,我试过才写上去的呀

你在检查一下吧
 
我知道原因了,那个变量i不应该在局部变量里面,要在全局变量里声明
谢谢你呀dibrave!
 
问题解决还不结帐?[:)]
 
后退
顶部