在Delphi中使用类的问题请教高手
请看以下程序,我在Unit2单元中建立了一个类TParams,在Unit1单元中建立了一个类TMyParams,它是从TParams继承而来的。在程序运行时出错:TMyParams不能使用TParams中的私有变量。但把两个类写在一个单元中TMyParams能使用TParams中的私有变量。我想在一般的设计中总会把父类写在一个单独的单元中的,如何解决这个问题?
另:即使把两个类写在一个单元中,程序运行进没问题,但当程序结束时(点击关闭按钮)程序却报错,这是为何,如何避免?
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls,Unit2;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
TMyParams = Class(TParams)
private
FDpt:string;
public
function getdpt():string;
procedure setdpt(dpt:string);
end;
var
Form1: TForm1;
myParams1:TMyparams;
implementation
{$R *.DFM}
procedure TMyParams.setdpt(dpt:string);
begin
fdpt:=dpt;
end;
function TMyParams.getdpt ():string;
begin
result :=fdpt;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
myParams1.setstyle(3);
showmessage(inttostr(myParams1.readstyle));
myParams1.setdpt('aaa');
showmessage(myparams1.getdpt);
end;
end.
unit Unit2;
interface
type
TParams = Class
private
FStyle:integer;
public
function readstyle():integer;
procedure setstyle(style:integer);
end;
var
Params:TParams;
implementation
function TParams.readstyle():integer;
begin
result:=FStyle;
end;
procedure TParams.setstyle(style:integer);
begin
FStyle:=style;
end;
end.