unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,jpeg;type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
Constructor Create(AOwner:TComponent);override;
end;var
Form1: TForm1;
jpeg1:tjpegimage;
implementation{$R *.dfm}
Constructor TForm1.Create(AOwner:TComponent);
begin
Jpeg1:=TJpegImage.Create;
Jpeg1.LoadFromFile('C:\My Documents\test\back.jpg');
end;
end.//---------------
编译没有错。
该函数执行完后出现:Exception EaccessViolation in module project1.exe ......
顺便问一下:构造函数能否用引用或初始化当前窗体中的控件?
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,jpeg;type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
Constructor Create(AOwner:TComponent);override;
end;var
Form1: TForm1;
jpeg1:tjpegimage;
implementation{$R *.dfm}
Constructor TForm1.Create(AOwner:TComponent);
begin
Jpeg1:=TJpegImage.Create;
Jpeg1.LoadFromFile('C:\My Documents\test\back.jpg');
end;
end.//---------------
编译没有错。
该函数执行完后出现:Exception EaccessViolation in module project1.exe ......
顺便问一下:构造函数能否用引用或初始化当前窗体中的控件?
begin
Jpeg1:=TJpegImage.Create;
Jpeg1.LoadFromFile('C:\My Documents\test\back.jpg');
end;
end.
改为
Constructor TForm1.Create(AOwner:TComponent);
begin
Jpeg1:=TJpegImage.Create(AOwner);
^^^^^^^
Jpeg1.LoadFromFile('C:\My Documents\test\back.jpg');
end;
end.或者单步跟踪看错在哪里
inherited Create(AOwner);
表示调用基类的构造函数,来构造基类的那一部分,否则,基类的成员没有初始化.