继承的问题 ( 积分: 100 )

  • 主题发起人 主题发起人 ff_ff
  • 开始时间 开始时间
F

ff_ff

Unregistered / Unconfirmed
GUEST, unregistred user!
我在Unit2中自定义一个类TA,继承Tcomponent,覆盖TCOMPONENT的构造函数,
在基类和Ta类中的构造函数中设断点,为什么跟踪不到tcomponent的构造函数中去
 
我在Unit2中自定义一个类TA,继承Tcomponent,覆盖TCOMPONENT的构造函数,
在基类和Ta类中的构造函数中设断点,为什么跟踪不到tcomponent的构造函数中去
 
看看其相应的dcu是否为当前日期,应是你的pas文件没起作用,应将pas放入lib目录中
 
unit Unit2;

interface
uses Classes,Dialogs;
type
TA=class(Tcomponent)
public
constructor create(AOwner:Tcomponent);override;
end;
type
TB=class(TA)
public
constructor create(AOwner:TComponent);override;
end;


implementation

{ TA }

constructor TA.create(AOwner: Tcomponent);
begin
inherited;[red]这里一个断点[/red]
showmessage('aaa');
end;

{ TB }

constructor TB.create(AOwner: TComponent);
begin
inherited;[red]这里一个断点[/red]
ShowMessage('bbb');
end;

end.
unit Unit1;

interface

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

type
TForm1 = class(TForm)
btn1: TButton;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation
uses Unit2;

{$R *.dfm}
var
b:TB;

procedure TForm1.btn1Click(Sender: TObject);
begin
b:=TB.create(self);


end;

end.
constructor TComponent.Create(AOwner: TComponent);
begin
FComponentStyle := [csInheritable];[red]这里一个断点[/red]
if AOwner <> nil then AOwner.InsertComponent(Self);
end;
[red]为什么就不能跟踪到最后一个断点的位置[/red]
 
打开project-complier-debugging-> use debug dcus选项
 
constructor TA.create(AOwner: Tcomponent);
begin
inherited create(AOwner);这里一个断点
showmessage('aaa');
end;
 
接受答案了.
 
后退
顶部