为什么constructor调试不了?

sqsavagepointer 2004-04-09 11:39:27
我建了一个BPUnit文件,里面定义了一个TBP类:
unit BPUnit;

interface
uses
SysUtils, SinSampleUnit;

type
.......
TBP = class(TObject)
private
......
protected
constructor Create;
procedure UnitaryYValue; //make the Y value unitary
public
......
end;//end class definiation

implementation

constructor TBP.Create;
begin
UnitaryYValue; //在这里设置断点
end;

procedure TBP.UnitaryYValue; //Unitar the Y value
var
I: Integer;
YDistance: double;
begin
......
end;
end.
然后在另外一个FormUnit中创建一个TBP类的对象:
unit BPFormUnit;

interface
uses
......, BPUnit;
type
TBPForm = class(TForm)
......
var
BPForm: TBPForm;

implementation
.......

procedure TBPForm.FormCreate(Sender: TObject);
var
BP: TBP;
begin
BP := TBP.Create;//在这里设置断点2
end;
end.

在上述地方设置断点2时,发现进不去BPUnit调试,这是什么原因?
设置断点1时,发现程序根本没有运行到constructor TBP.Create;里面,这是怎么回事呢?
...全文
56 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
idilent 2004-04-09
  • 打赏
  • 举报
回复
写道public里面了,除非你是不想让其他的代码建立这个类的实例。delphi的面对对象搞得不是很懂,从java里头来的理论。
idilent 2004-04-09
  • 打赏
  • 举报
回复
解释一下就是说在protected里面的东东只有子类和自己调用,所以你把constructor放在protected里面,在外面就调不到了。
sqsavagepointer 2004-04-09
  • 打赏
  • 举报
回复
因为constructor在protected里面
-----------------------------------
constructor写在哪里比较合适?
idilent 2004-04-09
  • 打赏
  • 举报
回复
因为constructor在protected里面
cqbonny 2004-04-09
  • 打赏
  • 举报
回复
关注.............
SydPink 2004-04-09
  • 打赏
  • 举报
回复
constructor Create;
//////
变成
constructor Create;override;

5,939

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧