我想做一个类,应该如何声明 直接新建一个 unit.pas的文件,然后把类代码写在文件里吗?一个unit.pas可以写多个类的代码吗?
我想重要一个card类,有属性
cardnum
cardtype 有方法:
getCardType(cardnum) 根据cardnum返cardtype
上面类的代码结构应该如何写,是像下面这样吗?type
Card = class
public
class procedure getCardType(cardnum); virtual;
...
end;class procedure Card.getCardType(cardnum);
begin
...
end;
我想重要一个card类,有属性
cardnum
cardtype 有方法:
getCardType(cardnum) 根据cardnum返cardtype
上面类的代码结构应该如何写,是像下面这样吗?type
Card = class
public
class procedure getCardType(cardnum); virtual;
...
end;class procedure Card.getCardType(cardnum);
begin
...
end;
解决方案 »
- 用DIXML的xpath获取的内容很多是空白,求解
- 工程文件里声明的变量,怎么才能在单元文件里面使用?
- 如何把TreeView中叶子Date中的值取出来?
- 三个form,我想达到如下效果,怎么做?
- 在A程序中用SendMessage函数能不能让B程序中的一个ListBox隐藏起来呢?
- 在线大家来看看
- 在D5中如何获得一个可输入控件的OnMouseIn 和OnMouseLeave事件?
- zswang(伴水)(被黑中)的DBGrid打印程序确实不错,无以为谢,150相赠
- 诸位前辈﹐最近小弟发现一款换肤软件ActiveSkin(3.65) 很不错,是Trail Version,不知如何注册﹖请教!!
- 如字符中有多个特定符号(如"-"),取去各个"-"的之间字符?
- 如何让窗体始终固定在屏幕的右下角?
- 查询access数据库问题
type
TOperator=class
id:integer;
operatorId:string;
operatorName:string;
pwd:string;
privilege:string;
re:string;
end;
type
Ttable=class
id:integer;
tableNO:integer;
begintime:string;
endtime:string;
otherFee:real;
allfee:real;
end;
implementationend.
Card = class
public
class procedure getCardType(cardnum);
end; procedure Card.getCardType(cardnum);
begin
end;
unit Unit_PublicFun;interfacetype
Card = class
cardNum:integer
cardtype:integer
public
class procedure getCardType(cardnum);
end; procedure Card.getCardType(cardnum);
begin
sql='select cardtype from card where cardnum='+cardnum+''
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(sql);
adoquery1.Open;
cardtype=AdoQuery1.fieldbyname('cardtype').asinteger;
ADOQuery1.Close;
end;
implementationend.
如果在其它代码需要查询cardtype值时,直接调用:
cardnum:=1001
tmpCardtype:=card.getCardtype(cardnum)
Delphi(Pascal) codeunit Unit_PublicFun;interfacetype
Card = class
cardNum:integer
cardtype:integer
public
class procedure getCardType(cardnum);
end; implementation
//函数的定义应该放到这里
procedure Card.getCardType(cardnum);
var
sql:string;//因为你使用了变量,所以这儿要声明一下
cardtype:integer;
begin
sql='select cardtype from card where cardnum='+cardnum+''
ADOQuery1.Close;//先关闭
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(sql);
adoquery1.Open;
cardtype=AdoQuery1.fieldbyname('cardtype').asinteger;//注意cardtype也没有定义哟
end;
end.如果在其它代码需要查询cardtype值时,直接调用:
cardnum:=1001;
tmpCardtype:=card.getCardtype(cardnum) //这儿是错误的,因为getCardtype是一个过程而不是一个函数,没有返回值,所以肯定要出错的
要想当一个函数使用,应该重新作一下定义
先在类里声明一下
function getCardType(cardnum):integer;function Card.getCardType(cardnum):integer;
var
sql:string;//因为你使用了变量,所以这儿要声明一下
begin
sql='select cardtype from card where cardnum='+cardnum+''
ADOQuery1.Close;//先关闭
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(sql);
adoquery1.Open;
result:=AdoQuery1.fieldbyname('cardtype').asinteger;//注意cardtype也没有定义哟
end;
为什么还要在后面这么做?
--
要想当一个函数使用,应该重新作一下定义
先在类里声明一下
--这样的话,类方法getcardtype就感觉没有用上,那不如直接写个独立的函数。
写类方法的目的就是方便在需要时直接调用。
非了。 我不是编程的,我是技术支持,现在有个小程序是用delphi编写的,原来编写的人找不着了,临时客窜一下。