捡分了,请教一个有关类的简单问题。(50分)

  • 主题发起人 主题发起人 dreamblue
  • 开始时间 开始时间
D

dreamblue

Unregistered / Unconfirmed
GUEST, unregistred user!
我在公共单元的类里申明函数
unit uPublic;
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics,
Controls, Forms, Dialogs, ExtCtrls, DBTables, StdCtrls,
DBCtrls, DB, CodeInput,dbGrids,ComCtrls,Grids,ComObj,ADODB,Registry;
type
TPublic= class (Tobject)
protected
public
class procedure write;
end ;

implementation
class procedure tpublic.write;
begin
showmessage('ok');
end;
end.

然后在程序单元里调用write过程uses uPublic;
procedure TForm1.Button1Click(Sender: TObject);
begin
write;
end;
但程序也不提示错误也不显示OK呀?这是为什么呀?

第二,我如果不用CLASS类方法,只在类里申明的话?
unit uPublic;
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics,
Controls, Forms, Dialogs, ExtCtrls, DBTables, StdCtrls,
DBCtrls, DB, CodeInput,dbGrids,ComCtrls,Grids,ComObj,ADODB,Registry;
type
TPublic= class (Tobject)
protected
public
procedure write;
end ;

implementation
procedure write;
begin
showmessage('ok');
end;
end.

我在程序里如何调用这个函数呢?请就此给出代码

 
第一,很多单元里都有write函数,Delphi总可以找到一个合适的Write函数,所以不报错。
但是找不到tpublic.write,因为你没有说明符号。所以只要改为tpublic.write 就可以了
第二,你的write函数的实现部分有问题,应该写为
procedure TPublic.write;
{...}
不写类修饰符号,找不到的。
引用的时侯,首先要创建类实例,然后通过实例引用函数
比如: tmp:=tpublic.create; tmp.write;...
这样就可以了
 
引用 use uPublic (uPublic单元要创建实例 uPublic:=TuPublic.create)
调用 uPublic.write
 
如果不用CLASS类方法:
unit uPublic;
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics,
Controls, Forms, Dialogs, ExtCtrls, DBTables, StdCtrls,
DBCtrls, DB, CodeInput,dbGrids,ComCtrls,Grids,ComObj,ADODB,Registry;
type
TPublic= class (Tobject)
protected
public
end ;

procedure write;


implementation
procedure write;
begin
showmessage('ok');
end;

然后在程序单元里调用write过程uses uPublic;
procedure TForm1.Button1Click(Sender: TObject);
begin
write;
end;

就OK

 

Similar threads

I
回复
0
查看
515
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部