问一个简单的问题(50分)

  • 主题发起人 主题发起人 shuizi2000
  • 开始时间 开始时间
S

shuizi2000

Unregistered / Unconfirmed
GUEST, unregistred user!
Delphi5中有没直线控件??可别告诉我用Canvas画线,理由如下:
我有一个图表分析界面,当移支鼠标时,能有线条跟踪,就像是AutoCad里的画线一样
,如果用Canvas画线,那么它用调用Repaint来重画,这样问题来了:每移动鼠标时都会
调用Paint事件,这样的话,原先的图表分析也重新分析了一遍(我的图表分析是在Paint
事件里产生的),觉得很不合理,哪位大侠能否给出一个方案或相关提示????
 
在Image控件里画好了。
 
用bevel或者panel模拟就行啦。设置宽度为你所需要的线宽就行了。:)
 
我一直用TBevel画表格的
 
但如果要画虚线呢???
 
用lineto吧,然后设置线型,有那么几种可以选的,要不你自己做一个控件,很简单的,
赫赫
 
用LineTo还不是用到了Canvas,这样每次重画时还是调用了Paint事件, 我的意思是:
能动态跟踪鼠标画出虚线,哪位大侠能给个提示!!!!!
 
有意思! 听听!
 
我认为如果要滑虚线可以这样,重载Tpanel的Paint方法,在中间画虚线,然后你可以创建
这个panel的实例,就可以满足你的要求,这样Paint事件被限制在Panel中了
 
能够举个例子吗,其实这个问题就是虚线的问题,虚线能随着鼠标的移动而移动,但不能产
生Form的Paint事件,难道没人碰到过吗???????
 
你想在form中移动控件或者图形而不触发paint事件是不可能的,除非你覆盖form的paint
方法才能避免Onpaint事件被触发。你可以跟踪一下看看(比如在Onpaint中写Beep),然后看
什么情况下Onpaint事件被触发了(有di一声响),相信你在很多情况下都听得见,哪怕只
是用别的窗口遮住它!
 
可以使用画布的,只是在座erase得时候用背景色再画一次就可以覆盖了。。
 
用带canvas 的控件,不要直接在Form中画。
如果手工画不可以实现橡皮线效果。
 
应该用canvas来画的,可以将pen.mode的属性设为pmnotxor,再重新画一次就可以起到抹线的作用。
鼠标移到总会触发paint的。
 
用shape控件 要什么样子都可以
 
Shape能设为直线形吗?好象也不能画斜线吧?
 
谁叫你用Paint事件了!!!
 
1213说的就可以,当鼠标移动的时候你重画老的线段就可以了,没什么背景会闪烁的!!
 
我用shape控件,但鼠标移动时有点抖动
 
后退
顶部