0

我遇到了一些错误,我只是在网上找不到适当的提示。希望你们中的一个人能指出我正确的方向。

简单问题:我有一个继承自 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;
4

0 回答 0