面向对象编程,关于自定义类、对象的问题? 我想深入了解这方面的知识(我想也有人与我一样),请各位多多指教!如:让自已编写(定义)的一个类,如何能够在整个项目中自由使用,而不会受到窗体、单元的限制!就像系统的类一样,同一项目中大家都可调用、继承等? 这样要如何创建呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Delphi中只有System和SysUtils单元是不需要用户自己加到Uses列表里面,而是由Delphi隐含包含的!如果你希望自己定义的类可以自由使用,很简单,单独定义个单元,例如MyUnit,然后在里面进行你的类的定义,最后在所有需要使用该类的单元的Uses列表里面添加该单元的名称即可!有窗体和无窗体的类没有什么大的区别!无窗体类的定义和有窗体类的定义完全一致,定义完在使用前都需要调用构造器进行实例化,最后都需要释放掉 无窗体的类一般从TObject继承,如果是制作非可视组件类,从TComponent继承,可视类根据其功能,可以从各种现有其它类继承,具体的东西,以两句说不清楚,你还是找两个程序读一下吧。 在此先谢各位的发言!!!如我想创建一个单独放自定义类的单元UmyClass 是否与在工程中创建一个窗体一样呢?从file-->new-->form 然后在里写代码就行了,还是其它的方式? FrameSniper:Delphi中只有System和SysUtils单元是不需要用户自己加到Uses列表里面,而是由Delphi隐含包含的!是这样吗?你运行下面这段代码试试……program Project1;uses Dialogs //,SysUtils //注释掉这行看看datetostr他认不认识? ;{$R *.res}Function WinMain(hInstance : HINST; hPrevInstance: HINST; lpCmdLine : PChar; nCmdShow : Integer): Integer; stdcall;Begin showmessage(datetostr(date));end;beginWinMain(hInstance, hPrevInst, CmdLine, CmdShow);end. 难道不是吗,你什么时候需要手动把这两个单元自己加到Uses列表里面了?这些工作都是Delphi自动隐含就给你进行了,不需要用户来管理的! 运行我上面那段代码,SysUtils就要自己加 谢谢各位发言!那我想把好几个类放到同一个方件中,而不要一个类(组件)放一个文件,哪要如做创建这个文件呢?是与创一件窗体一样呢还是从 Component-->new Component里创建呢?我没有编类(组件)的经验,有经验的高手能否介绍些,当个入门! File|New|Unit//一例如下:unit unitname;interfaceuses Classes;type TClass1=class(TComponent) constructor Create(AOwner:TComponent);override;//视需要覆盖基类的构造函数 destructor Destroy;override;//视需要覆盖基类的解构函数 private FProp1:Integer; //一个私有成员 procedure Method1(...);//一个私有方法 public procedure Method2(...);//一个公有方法 published Property Prop1:Integer read FProp1 write FProp2;//一个公开属性 end; TClass2:=class(TBaseClass2) public procedure Method1(...); end;implementation//下面实现 TClass1constructor TClass1.Create(AOwner:TComponent);begin inherited;//视需要继承基类的构造器行为 ...//自己的处理end;destructor TClass1.Destroy;begin ...//自己的处理 inherited;//继承基类的解构器行为end;procedure TClass1.Method1(...);begin..//end;procedure TClass1.Method2(...);begin..//end;//下面实现 TClass2procedure TClass2.Method1(...);begin..//end; 我建议你去读<delphi高手突破》那里面对类的描述很精彩 '123456' 这样的字符串有点问题. DELPHI开发者转BI这块,用POWERCENTER,是不是差的有点远 在ACTIVEX中如何调用DLL时的问题 隐藏进程代码引起的蓝屏??未解决! 还是DBGird的问题 Delphi 5.x 分布式多层应用电子商务篇遇到问题 焦点悬赏200-解决问题另给分,UP者也赏! 初学者,请帮忙!!! 如何清空一个目录下的文件? Tedit的菜单问题... 这个代码那里出了错误呀??? 我想在我的项目中,自定义一种按钮,做成一个类,该怎么弄啊?
无窗体类的定义和有窗体类的定义完全一致,定义完在使用前都需要调用构造器进行实例化,最后都需要释放掉
具体的东西,以两句说不清楚,你还是找两个程序读一下吧。
如我想创建一个单独放自定义类的单元UmyClass 是否与在工程中创建一个窗体一样呢?从file-->new-->form 然后在里写代码就行了,还是其它的方式?
program Project1;uses
Dialogs
//,SysUtils //注释掉这行看看datetostr他认不认识?
;{$R *.res}
Function WinMain(hInstance : HINST;
hPrevInstance: HINST;
lpCmdLine : PChar;
nCmdShow : Integer): Integer; stdcall;
Begin
showmessage(datetostr(date));
end;
begin
WinMain(hInstance, hPrevInst, CmdLine, CmdShow);
end.
那我想把好几个类放到同一个方件中,而不要一个类(组件)放一个文件,哪要如做创建这个文件呢?是与创一件窗体一样呢还是从 Component-->new Component里创建呢?
我没有编类(组件)的经验,有经验的高手能否介绍些,当个入门!
unit unitname;interface
uses
Classes;type
TClass1=class(TComponent)
constructor Create(AOwner:TComponent);override;//视需要覆盖基类的构造函数
destructor Destroy;override;//视需要覆盖基类的解构函数
private
FProp1:Integer; //一个私有成员
procedure Method1(...);//一个私有方法
public
procedure Method2(...);//一个公有方法
published
Property Prop1:Integer read FProp1 write FProp2;//一个公开属性
end; TClass2:=class(TBaseClass2)
public
procedure Method1(...);
end;implementation
//下面实现 TClass1
constructor TClass1.Create(AOwner:TComponent);
begin
inherited;//视需要继承基类的构造器行为
...//自己的处理
end;
destructor TClass1.Destroy;
begin
...//自己的处理
inherited;//继承基类的解构器行为
end;
procedure TClass1.Method1(...);
begin
..//
end;
procedure TClass1.Method2(...);
begin
..//
end;//下面实现 TClass2
procedure TClass2.Method1(...);
begin
..//
end;