cherywq 发表于 2007-10-8 11:20

[求助]关于自定义属性的问题

<STRONG></STRONG>
<P>我在单元内想建立自定义类的自定义属性,代码如下<BR>unit Unit2;<BR>interface<BR>type<BR>  myclass=class<BR>  private<BR>    Fstrname:string;<BR>  public<BR>  procedure setname(var str:string);<BR>  published<BR>  property ckname:String read Fstrname write setname;<BR>end;<BR>implementation<BR>procedure myclass.setname(var str:string);<BR>  Fstrname:=str;<BR>end;<BR>end.<BR>但现在怎么也编译通过不了,Delphi7.0提示unkown directive Fstrname,可Fstrname我已经在type中定义了呀。<BR>请大家帮帮忙看看是什么原因?</P>

cherywq 发表于 2007-10-8 11:52

怎么没有人回答啊,版主在吗?[em08]

cherywq 发表于 2007-10-8 12:59

唉。。。。。。。。。。人气惨淡啊!

缘吇弹 发表于 2007-10-8 18:01

<P>粗略看了下,没发现什么大的错误.只是发现你漏了个begin:<BR></P>
<DIV class=quote><BR>unit Unit2;<BR>interface<BR>type<BR>  myclass=class<BR>  private<BR>    Fstrname:string;<BR>  public<BR>  procedure setname(var str:string);<BR>  published<BR>  property ckname:String read Fstrname write setname;<BR>end;<BR>implementation<BR>procedure myclass.setname(var str:string);<BR><FONT color=#ff0000>begin</FONT><BR>  Fstrname:=str;<BR>end;<BR>end.<BR></DIV>

anthony634 发表于 2007-10-8 22:09

除了begin外,属性只能是值传递的,不能用var的,另外如果不是练习,没必要使用函数,直接property ckname:String read Fstrname write Fstrname;就可以了。还有一个是 如果不是出于练习的目的,在实际中如不需要可视化 不用published。只有public,属性在最下面<BR>

cherywq 发表于 2007-10-9 13:53

谢谢版主,自己太粗心了[em01]

页: [1]

编程论坛