请问在delphi中如何做一个线条控件(100分)

  • 主题发起人 主题发起人 wudwlf
  • 开始时间 开始时间
W

wudwlf

Unregistered / Unconfirmed
GUEST, unregistred user!
请问在delphi中如何做一个线条控件,该控件可以得到焦点,可以有自己的事件(当然
可以是斜线,可以覆盖任何组件)
 
我又huizhang的TLine控件源码,完全符合你的要求,另外可以画箭头。
需要请给我发email。
 
已经Email给您,请问如何得到该控件,谢谢!
 
http://wjiachun.edu.chinaren.com/down/TLine.zip
 
wjiachun:
你好,您说的地方进不去,谢谢
 
一个文件而已,你把它复制进蚂蚁就可以下载了。
 
复制进蚂蚁也不行,要出错,能发邮件给我吗,谢谢!!!
 
非常感谢!!!!!:-)
 
原来是我Chinaren的50M空间用完了 :-(
我今晚回去找找,明天发给你可以么?
 
OK,等着你的Email!!
谢谢·!!!!!!!!!!!!!!!!!!!!
 
谢谢您发过来的Tline控件,该控件做得非常的好,但对于我们的需求还有一个较大的缺
憾,即,一条线占用的实际上是以该线为对角线的一个矩形区域,如果将线条控件置于面上,那
么该线条所在的矩形区域内的其他控件(如Tshape)将接受不到事件,请问如何解决。(也
就是说线条控件影响了其他控件的使用)

望指教。
 
如果是这样就复杂了,你又需要把 Line 放在上面,以便不被 Button 等覆盖,又要不把下面
的控件覆盖,等于是又要覆盖别人,又不要完全覆盖别人。
这个控件应该是基于 TWinControl 的后代的,如果有源代码,建议修改一下,把控件窗口句柄
的 Region 设置成线条所覆盖的区域。
用 BeginPath --> MoveTo --> LineTo --> EndPath --> PathToRegion --> SetWindowRgn
这样的序列应该能得到你要的效果。
 
一般来说TWinControl总是矩形的,唯一的解决办法是SetWindowRgn。
BuKuBaKu说得对。
另外可使用CreatePolygonRgn。
 
看一下TPolyLine控件,他可以满足您的要求。
http://www.truevcl.com
 
请问,你想在什么区域响应你的事件?
还有,正如BAKUBAKU所说,你即要覆盖别的控件,又要被它覆盖的控件有接受焦点能力,
只能重画区域,或判断鼠标位置,给这个控件发个消息,触发事件!
 
多人接受答案了。
 
后退
顶部