问一下Canvas上画图的一些操作。(50分)

  • 主题发起人 主题发起人 icet
  • 开始时间 开始时间
I

icet

Unregistered / Unconfirmed
GUEST, unregistred user!
在Delphi如果用Canvas画一些图形,如何进行一如拖拽的动作?
(如何像VC里的“无效区”那样操作?)
 
中国及亚洲用户:
http://china.codeidea.com
其他地区:
http://www.codeidea.com

TCAD2002
可以参考
 
thanks.
没连上。
给否给个简单点的例程?
 
有谁有例子?
(本人水平确实有限,但可以加点分)
:)
 
拖拽动作实际上就是监视鼠标操作,而且鼠标落下、鼠标移动以及鼠标抬起三个事件要
配合工作,并且还要能够判断操作的图形的各种信息等等。。。。。。。
 
你是要拖动窗口还是拖动图形啊?

要是拖动窗口,和 Canvas 没什么关系; 要是拖动图形,何不用 TImage 控件?

 
是要拖动图形。
Timage是可以,但大家都知道那远远来得不如canvas丰富。
而且,我现在的意思相当于是可以在canvas上选个框框,
然后把这个框里面的东西随意拖动。
 
中国及亚洲用户:
http://china.codeidea.com
其他地区:
http://www.codeidea.com

TCAD2002
可以参考
 
先声明一个动态数组
你可以先用canvas.rectangle和设置canvas.pen.style为虚线,然后以这个矩形为框
框,把矩型中的象素读到一个动态数组,在dowm事件中检测按键为左还是右如果是左就执
行以下操作。
在移动事件中再检测top和left弟增还是递咸top递增那矩形向下移(当移的时候要把原
来的矩型删除,再在新的地方画出矩型但不要再把它读入数组),再后在up事件中把再后矩
型画出的地方把数组中的象素读出就行。但有个缺点就是如果矩型大就明显的慢,上面的只
说明了原理至于要用于实际就要用bitblt等读矩型的象素。
 
用Canvas.CopyRect
 
多人接受答案了。
 
后退
顶部