一个关于创建组件的简单问题(100分)

  • 主题发起人 主题发起人 蛤蟆跳井,不懂不懂
  • 开始时间 开始时间

蛤蟆跳井,不懂不懂

Unregistered / Unconfirmed
GUEST, unregistred user!
下面是《Delphi 5 基础与提高》中421页的例题。是以TCustomEdit为基类创建一个编辑型的时间显示组件,
并为其添加一个Boolean型的UsesysTime属性用于表示是否显示系统时间,添加一个鼠标右击事件。
可我按书上打好原码后编译组件时总是在“*********************************”的下面那一行处出错,
麻烦高手指点我这是为什么?

问题很菜,不要见笑!


unit TimeBox;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TTimeBox = class(TCustomEdit)
private
{ Private declarations }
fUseSysTime:Boolean;
procedure SetUseSysTime(value:Boolean);
//****************************************(下面这一行错在何处?)
fNotifyEvent:tNotifyEvent; //与鼠标右击事件相联系的变量
protected
{ Protected declarations }
public
{ Public declarations }
procedure RButtonDown(var Message:TMessage);message wm_RButtonDown;
constructor create(AOwner:tcomponent);override;
published
{ Published declarations }
property UseSysTime:Boolean //属性:是否显示系统时间
read fUseSysTime write SetUseSysTime default true;
//鼠标右击事件
property OnRButton:TNotifyEvent read fNotifyEvent write fNotifyEvent;
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents('Samples', [TTimeBox]);
end;

procedure TTimeBox.SetUseSysTime(value:boolean);
begin
if fUseSysTime<>value then
fUseSysTime:=value;
end;

procedure TTimeBox.RButtonDown(var Message:TMessage);
begin
if assigned(OnRButton)then
OnRButton(self);
end;

constructor TTimeBox.create(AOwner:TComponent);
begin
inherited create(AOwner);
fUseSysTime:=true;
Text:=datetostr(now)
end;

end.
 
字段不能定义在方法和属性的后面。
你把fNotifyEvent:tNotifyEvent;这一行
写在procedure SetUseSysTime(value:Boolean);前面就行了
 
很简单,改变一下顺序,因为变量的定义必须在函数和过程定义的前面
fUseSysTime:Boolean;
[blue] //****************************************(下面这一行错在何处?)
fNotifyEvent:tNotifyEvent; //与鼠标右击事件相联系的变量//放在这里[/blue]
procedure SetUseSysTime(value:Boolean);
[red]{ //****************************************(下面这一行错在何处?)
fNotifyEvent:tNotifyEvent; //与鼠标右击事件相联系的变量} // 移到蓝色处[/red]
 
这可是最基本的问题啊,老兄。delphi不象c++可以想怎么就怎么,只能先变量,后代码。
 
to 我遛鸟呢 和 bluerain :多谢两位前辈指点!这是小弟在DFW的第一个贴
子,只可惜我现在没有积分了,以后再报答二位!

Kisber兄:兄弟初学Delphi,更不懂c++,可不敢想怎么就怎么,只是这个问题
虽然简单,而且知道后也觉得确实就应如此,可以小弟的智商,如果书上没教,而我又不问,是不大容易自己便会的。以后还会问一些菜鸟级的问题,还望老
兄继续赐教。
 

Similar threads

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