像<<画图>>一样画出一条直线谁能教我!(不要那种点出来的直线,要拉出过程来的)!

win20000 2004-01-23 01:38:30
为了画条直线我年前忙到年后!
...全文
74 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
麻子 2004-01-25
  • 打赏
  • 举报
回复
http://www.efile.com.cn/?liumazi
我做好了,在上面连接下载代码
myblind 2004-01-23
  • 打赏
  • 举报
回复
那个例子很简单,
拖动过程关键在 FormMouseMove 的 DrawShape 里的 Pen.Mode := AMode;
DrawShape里用的是 pmNotXor(异或非),
然后 FormMouseUp 用的是 pmCopy(原样)。
SydPink 2004-01-23
  • 打赏
  • 举报
回复
type
form1..
private
OldP,NewP:TPoint;
Down:Boolean;
....
procedure Form1.OnCreate(sender:TOBject);
begin
down:=false;
end;
...
procedure Form1.OnMouseDown(...);
begin
Down:=true;
OldP:=POint(X,Y);
NewP:=OldP;
end;
PROCEDURE Form1.OnMouseMove();
begin
NewP:=Point(x,y);
if (NewP.x=OldP.x)and(NewP.y=OldP.y) then exit;
if Not Down then exit;
with Form1.Canvas do begin
Pen.Mode:=pm_Not;//设置画笔模式为反,具体取值看帮助;忘记了:)
MoveTo(OldP);
LineTo(NewP);// 插曲旧线
Pen.Mode:=pm_not;
MoveTo(OldP);
LineTo(NewP);//新线
end;

end;
procedure Form1.OnMouseUp();
begin
Down:=false;
NewP:=Point(X,Y);
with form1.canvas do begin
pen.color:=Your Line Color;
MoveTo(OldP);
LIneTo(NewP);
end;
end;

//that's all;
win20000 2004-01-23
  • 打赏
  • 举报
回复
谁能给讲解一下子!



麻子 2004-01-23
  • 打赏
  • 举报
回复
这个很简单,我的qq:71892967
flyforlove 2004-01-23
  • 打赏
  • 举报
回复
demos\doc\graphex
写得很清楚,自己看吧。

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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