请教一个对高手来说不难的问题,控件编程高手请进!(系统不能给超过100分,问题解决后另加……)

wzwcn 2004-12-20 11:01:23
我想从TControl继承访造Tedit控件。请问,Tedit的界面是如何画出来的?里面的光标是如何画出来的?当在里面输入东西时,又如何画出里面的字?
最好是有代码或者例子。谢了!
...全文
99 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzwcn 2004-12-20
  • 打赏
  • 举报
回复
那看来我要从TWinControl继承了。
但我在这方面几乎没有什么经验,请有什么例子可供小弟研究研究吗?
wzwcn 2004-12-20
  • 打赏
  • 举报
回复
但是
如果我要从TControl继承的话
我如何实现?
TechnoFantasy 2004-12-20
  • 打赏
  • 举报
回复
不同过TCUSTOMEDIT继承的好处是你可以把编辑框做的像UltraEdit这样的灵活(比如行号、文本高亮显示等)但是我建议你应该从TWinControl继承而不是TControl。
假设你是从TWinControl继承的,实现文本框特性的功能你需要自己一个个来实现,例如出现光标的效果,你就需要通过API函数CreateCaret创建一个光标,然后通过SetCaretPos设置光标的位置并且通过ShowCaret显示光标。
至于文本的输出,你就需要重载WM_CHAR、WM_UNICHAR消息,获得用户敲的内容并且输出。
wzwcn 2004-12-20
  • 打赏
  • 举报
回复
这样??
可是,我们有些人自已画光标和文字的输出也自己画出来的。好象也可以只是还有一些小问题。
TechnoFantasy 2004-12-20
  • 打赏
  • 举报
回复
是这样的的,TEdit是从TCUSTOMEDIT继承下来的,而TCUSTOMEDIT具有编辑框的特性是因为在TCUSTOMEDIT的CreateParams方法中设定了窗口类(在Windows中,窗口类决定了窗口是按钮、文本框、列表框还是其它的什么)。而光标、文字输出、选中的效果都是设定了编辑框窗口类后自动实现的。
wzwcn 2004-12-20
  • 打赏
  • 举报
回复
我知道。但这是我们实训的作业,我也没办法呀。
dejiang 2004-12-20
  • 打赏
  • 举报
回复
直接从TControl继承要做的工作太多了,为什么不从TCUSTOMEDIT类进行继承?
wzwcn 2004-12-20
  • 打赏
  • 举报
回复
有从更上一级类继承的例子吗
  • 打赏
  • 举报
回复
从TCUSTOMEDIT类进行继承,VCL有源程序。

5,392

社区成员

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

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