继承自TComponent的类如何做成像控件一样?(20分)

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

ilovemilk

Unregistered / Unconfirmed
GUEST, unregistred user!
继承TControl有很多无用的东东.只想做成能够显示,响应鼠标消息简单的操作.
加入了TCanvas属性来显示,怎样通知系统元件的大小?区域?....
怎样像控件一样响应鼠标消息,

 
我自己顶一下
 
覆盖TComponent的Create方法试试.
 
你总不是要自己写类库吧。有个KOL好像,你可以参考,呵呵。
TControl是最基本的东西了。要知道一个对象的空间基本上只比他的数据区大一点点。除非你的程序里根本就没有参考到TControl(Form也不能用的),否则用TControl就好了。无用可以不用嘛,有人送你一个P4 3.0G 要你玩纸牌,你难道还非得找一个486装个Win95来玩?
需要TCanvas,可以从TgraphicControl/TCustomControl继承。
一些不需要的比如鼠标消息可以参考ComponentState ControlState
 
to zjan521
我就是有此打算,因为我觉得delphi的优点是如此,封装了很多方法属性,让程序开很快就上手,且可以快速开发,缺点也是这个,对程序员说形成了惰性,在高级开发也从控件下手,在要求高的时候很难对程序减肥和优化,在有Bug时难以确定是系统还是控件还是自己的代码出错了,以前做报表用QuickReport就深有体会。
不过你说的对,现在硬件发展这样的快,开发程序就不必考虑对程序大小等因数。
最近一直在研究TControl。发现一个问题,在TControl中有这样的定义
FParent: TWinControl;而TWinControl继承自TControl,这样是不是有点不太好呢?
还有对TControl的重画都是用Windows的Api,实际上在TWinControl中才是Windows系统的窗体类,才能接受消息,delphi是怎样做的呢?
 
如果你想继承TComponent就做成能够显示,响应鼠标消息简单的操作.
怎样通知系统元件的大小?区域?....怎样像控件一样响应鼠标消息,
你必须拦截及处理Windows的消息,解决设计及运行时期的自绘,
组件的持久化机制,与其他控件的配合。。。我鼓励你这样做,但真正
用的时候就该继承TControl,相信我,你自做的组件不会比TControl小很多,
但没他做的好
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部