50分最易拿--integer字段在组件里incompatible types?在线等待 ( 积分: 50 )

  • 主题发起人 主题发起人 懒少爷
  • 开始时间 开始时间

懒少爷

Unregistered / Unconfirmed
GUEST, unregistred user!
一个组件在里面有:
private
FTotalSN:integer;

protected
procedure setTotalSN(sSN:string;eSN:string;SNs:string);
published
property TotalSN:integer read FTotalSN write setTotalSN;

implementation

procedure TCMultiDigits.setTotalSN(sSN,eSN,SNs:string); //):string ;
begin
if (sSN<>'') and (eSN<>'') and (SNs<>'') then
FTotalSN:=N2Dec(eSN,SNs)-N2Dec(sSN,SNs)
else
FTotalSN:=0;
end;
为什么会有incompatible types错误?如果我把FTotalSN变为String其它地为作相应修改就编译通过?
在线等待!
 
一个组件在里面有:
private
FTotalSN:integer;

protected
procedure setTotalSN(sSN:string;eSN:string;SNs:string);
published
property TotalSN:integer read FTotalSN write setTotalSN;

implementation

procedure TCMultiDigits.setTotalSN(sSN,eSN,SNs:string); //):string ;
begin
if (sSN<>'') and (eSN<>'') and (SNs<>'') then
FTotalSN:=N2Dec(eSN,SNs)-N2Dec(sSN,SNs)
else
FTotalSN:=0;
end;
为什么会有incompatible types错误?如果我把FTotalSN变为String其它地为作相应修改就编译通过?
在线等待!
 
属性的读写方法必须只带一个和属性类型一致的参数,你的SetTotalSn改成
procedure SetTotalSn(Value: Integer);
就可以通过编译。
这是属性的特殊地方,如果你需要计算,那么你把TotalSN换成一个方法来返回比较合适。
 
晕,还有这么定义属性方法的?!
 
我看的书上没有这样讲呀!
谢谢了,先给分再去试!
 
后退
顶部