在image上画圆

whatname 2002-03-27 07:43:04
我要在image的canvus上画圆,只要圆的边框,画完后发现image变成不透明的了,怎么才能让话完的image是透明的呢?
...全文
277 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
windindance 2002-04-07
  • 打赏
  • 举报
回复
在TPaintBox的OnPaint事件中画图
whatname 2002-04-07
  • 打赏
  • 举报
回复
用 TpaintBox 固然可以,可是当有其它控件经过PAINTBOX的表面时,PAINTBOX上画的东西会被擦掉
Kingron 2002-04-06
  • 打赏
  • 举报
回复
用TpaintBox代替TImage,TImage主要用来显示的,不是用来Draw的。
whatname 2002-04-06
  • 打赏
  • 举报
回复
我要在image上每秒画一条线,可是效果不好,总是闪:(

怎么办呀?
blazingfire 2002-04-03
  • 打赏
  • 举报
回复
TImage.Transparent:=True;
solocom 2002-03-27
  • 打赏
  • 举报
回复
with image.Canvas do
begin
brush.Style:=bsClear;
pen.color:=clred;
Ellipse(0,0,100,100)
end;
刚试过,没问题,拿分来!!!!
BasicUser 2002-03-27
  • 打赏
  • 举报
回复
哈哈
whatname 2002-03-27
  • 打赏
  • 举报
回复
不行呀 我试过了 事实上我以前画都可以的 :(
solocom 2002-03-27
  • 打赏
  • 举报
回复
image.Canvas.Brush.Style := bsClear;ok!!!!!!!!!!!!!!!!!1
zwhhoo 2002-03-27
  • 打赏
  • 举报
回复
设image.Canvas.Brush.Style := bsClear;了吗?

whatname 2002-03-27
  • 打赏
  • 举报
回复
hiddingeye((问路人)) 我明白你的意思:) 谢谢

还是上面的问题,我用下面的语句画线,结果image又变成不透明的了:( 怎么办呀

image1.Picture:=nil;
image1.Transparent:=true;
image1.Canvas.MoveTo(0,0);
image1.Canvas.lineTo(100,100);

HiddingEye 2002-03-27
  • 打赏
  • 举报
回复
两个全局变量(OLDX,OLDY)保存你的鼠标按下的坐标。在ONMOUSEDOWN里记下OLDX,OLDY。然后在ONMOUSEMOVE里MOVETO(oldX,oldY),MOVETO(NEWX,NEWY)注意:要把你的PEN的颜色设成image反色。先用和IMANG相反的颜色化,然后再话一次,在ONMOUSEMOVE里,在用相反的颜色再话依次(为了擦去上次话的先),就可以了。再ONMOUSEUP里,用你的PEN的颜色最后话上去。就可以了!
(表达能力有限。见凉!:-))
whatname 2002-03-27
  • 打赏
  • 举报
回复
另外我还想问一下 怎么能画一条线,一个顶点固定,另一个随鼠标变动????
whatname 2002-03-27
  • 打赏
  • 举报
回复
我用arc()画了一个封闭的弧线
踢踏 2002-03-27
  • 打赏
  • 举报
回复
自己试试下面的东西:
canvas.rectangle(): 画矩形 pen.color: 定义画笔颜色
roundrect(): 画圆角矩形 pen.width: 定义画笔宽度
arc(): 画弧线( 不填充) brush.color: 定义填充颜色
chord(): 画弧线( 填充) textout(): 在固定位置输出字符串
pie: 画扇形 textwidth: 取字符串高度
polygon(): 画多边形填充 textheight: 取字符串宽度
polyline(): 多点连线( 不填充) font.color: 指定字体颜色
Pixels(): 指定固定象素点颜色值font.size: 指定字体大小
moveto(): 指明画线起点 Ellipse(): 画圆或椭圆
lineto(): 指明画线终点
windindance 2002-03-27
  • 打赏
  • 举报
回复
image.Canvas.Brush.Style := bsClear;
blazingfire 2002-03-27
  • 打赏
  • 举报
回复
自己画个圆试试
如:
var
I,R,x,y:integer;
begin
for I:=0 to 2*31416 do
begin
x:=Round(30+R*cos(I/10000));
Y:=Round(30-R*sin(I/10000));
Image1.canvas.Pixels[x,y]:=clred;
end;
end;

829

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧