跟delphi同行们探讨一下如何自定义控件的问题,人人都有分。 自定义控件三言两语讲不完,不如你上网搜索来得快不过我可以提个建议,delphi目录下有个source目录,里面都是delphi6自带控件的源代码,我想在你了解了组件的结构以后,应该很容易修改这些源码以得到你自己希望的功能。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1 继承祖先类的处理用inherited,关闭当前窗口,用TForm(owner).close,至于控件怎么写,还是得看看书了,一句两句也说不清楚.2 如果再一个工程用,可以用frame处理,简单,如果是写程控件,你可以从tform继承,再create事件代码动态创建你需要添加的控件(按钮什么的),并写出相关的事件处理代码,赋值给你添加控件的相应事件!只能说这么多了,多写写就明白了!:) 1.在事件中先处理自己的事情 ,然后再inherited;就可以了2.你看看Delphi6中的TLabeledEdit,那正是你所说的东东。自己写控件主要是对WINDOWS消息要熟悉,拿出用VC的那种精神就可以了。 如果是写程控件,你可以从tform继承,再create事件代码动态创建你需要添加的控件(按钮什么的),并写出相关的事件处理代码,赋值给你添加控件的相应事件````` (一),用Form的可视化继承,即可(二),用TFrame即可 2、可以不用TFrame如果是同一个工程,做好一个窗体,可以直接继承该窗体。做法如下:在一个工程(如:工程名为TEST)中做好一个窗体(名称为:AFORM),用file->new->TEST(工程名)选择AForm。这样就创建了一个继承‘AFORM’的窗体,它的事件,对象都继承了。可以添加新的对象,不能修改原有的对象(包括对象名)。如果不想继承某一对象的某一事件,可以将事件中的’inherited;‘注释掉,加自己的事件。我经常这样做,请高手指正 看来你想在段时间内用 delphi 比用 pb 爽是不可能的,因为你还没学会被 delphi 折磨。我认为除了使用技巧上的区别外,还有一个重要的方面:具体工具的思维方式。我没用过 pb ,但我知道 vb\delphi\vc 之间在这方面的区别: vb 易学易用,但面向过程的方式显然缺乏对大量代码的管理方法,代码由一群的函数、结构组成,容易陷入垃圾的困境。 delphi 中等难度,严谨得有时觉得难受,简化的类间继承关系,扩展了更多方便的“傻瓜”功能,将编程者的主要力量引入对系统的功能设计上来。"中规中矩"的表现容易被追求“经典”所抛弃。 vc 稍高难度,灵活的语法和数种能达到目标的方法,使你有很爽的感觉(你一定要很有经验才是,否则你会说“好深奥好经典”),你完全可以在技巧和设计上尽情翱翔,当然那要看你的兴趣和能力了,真正实现的人没几个。它是个坏小子,可能是垃圾,可能是天才在你手中。哦,太离题了,希望你不介意 :) 做:Label+Edit等自定义组合控件须从TWinControl继承如: Ta=class(TWincontrol) private FLabel:TLabel; FEdit;TEdit; public Constructor Create(AOwner:TComponent);override; Destructor Destroy;override; end;Constructor Ta.Create(AOwner:TComponent);override;begin Flabel:=TLabel.create; FEdit:=TEdit.create; ...end;//差不多了吧 常量与变量的连接 如何调用swf文件中的函数啊? 如何改變project 在任務欄的標題?-最后30分了 关于日期的问题 如何在sqlserver中创建一个数据库? 寻找在南京社会实践的机会 这样的SQL语句能实现吗?? 关于串口硬流流控的问题 如何用日期相减求天数? 求Record结构体的排序算法----------大虾请进!!!!!!!!! 哪儿有用delphi写的简单收发邮件的源程序下载啊 delphi 6 安装后执行,出现“无法定位程序输入点@Variants@initialization$qqrv于动态链接库rtl60.bpl上”
2 如果再一个工程用,可以用frame处理,简单,如果是写程控件,你可以从tform继承,再create事件代码动态创建你需要添加的控件(按钮什么的),并写出相关的事件处理代码,赋值给你添加控件的相应事件!
只能说这么多了,多写写就明白了!:)
2.你看看Delphi6中的TLabeledEdit,那正是你所说的东东。
自己写控件主要是对WINDOWS消息要熟悉,拿出用VC的那种精神就可以了。
(二),用TFrame即可
如果是同一个工程,做好一个窗体,可以直接继承该窗体。做法如下:
在一个工程(如:工程名为TEST)中做好一个窗体(名称为:AFORM),用file->new->TEST(工程名)选择AForm。这样就创建了一个继承‘AFORM’的窗体,它的事件,对象都继承了。可以添加新的对象,不能修改原有的对象(包括对象名)。如果不想继承某一对象的某一事件,可以将事件中的’inherited;‘注释掉,加自己的事件。我经常这样做,请高手指正
vb 易学易用,但面向过程的方式显然缺乏对大量代码的管理方法,代码由一群的函数、结构组成,容易陷入垃圾的困境。
delphi 中等难度,严谨得有时觉得难受,简化的类间继承关系,扩展了更多方便的“傻瓜”功能,将编程者的主要力量引入对系统的功能设计上来。"中规中矩"的表现容易被追求“经典”所抛弃。
vc 稍高难度,灵活的语法和数种能达到目标的方法,使你有很爽的感觉(你一定要很有经验才是,否则你会说“好深奥好经典”),你完全可以在技巧和设计上尽情翱翔,当然那要看你的兴趣和能力了,真正实现的人没几个。它是个坏小子,可能是垃圾,可能是天才在你手中。哦,太离题了,希望你不介意 :)
如:
Ta=class(TWincontrol)
private
FLabel:TLabel;
FEdit;TEdit;
public
Constructor Create(AOwner:TComponent);override;
Destructor Destroy;override;
end;
Constructor Ta.Create(AOwner:TComponent);override;
begin
Flabel:=TLabel.create;
FEdit:=TEdit.create;
...end;
//差不多了吧