我遇到了一些错误,我只是在网上找不到适当的提示。希望你们中的一个人能指出我正确的方向。
简单问题:我有一个继承自 TObject 的类。我有一个名为 Create 的构造函数,我想在唯一构造函数的第一行调用 Inherited。不工作!
在编译时我得到一个
[dcc32 Fehler] ULSRAware.pas(58): E2008 Inkompatible Typen
如果我将继承的注释注释掉,它编译得很好,但在运行时创建对象时,虽然我可以定期访问方法(如一些私有 _InitAdo 方法),但每次访问属性都会产生访问冲突错误。
我猜它来自调用继承但没有任何足够的成功。
这是单位负责人的声明。顺便提一下,就是单位里的这个班。当然,在实施部分实施。
type TLAConnect = class( TObject )
private
_mailHost : String;
_mailPort : Integer;
_mailUsername : String;
_mailPassword : String;
_mailAddress : String;
_sql_script_sms : String;
_sql_script_mail: String;
_sms_mail_addon : String;
//connection : TADOConnection;
(*
procedure SendMessage( recp:String; subj, body : String );
procedure _InitAdo( config_filename : String; path: String );
function GetMsgId( msg : String ) : Integer;
function GetMsgIdFromByteBit( byte, bit : String ) : Integer;
function ProcessMessage( msgId : Integer ): String;
procedure Trigger( msgId : Integer );
procedure QuittMsg( msgId : Integer );
procedure MakeMessage( _msgid : Integer; _fsms, _fmail : Boolean; _smsgl, _smsgs : String );
function CreateNewByteTrigger( byte, bit : String ) : Integer;
*)
public
Constructor Create( config : String );
Destructor Destroy; override;
//function Call( msg:String ) : Boolean;
end;
以及构造函数和析构函数的实现。
Constructor TLAConnect.Create( config : String );
begin
inherited.Create;
//self._InitAdo( config, 'lsraware ado' );
_mailHost := 'blabla';
_mailPort := 587;
_mailUsername := 'blabla_user';
_mailPassword := 'blabla_pass';
_mailAddress := 'blabal';
end;
Destructor TLAConnect.Destroy;
begin
self.connection.Free;
Inherited;
end;