Delphi XE6 E2008 по наследству - PullRequest
0 голосов
/ 26 июня 2018

Я столкнулся с некоторой ошибкой, из-за которой просто не могу найти подходящую подсказку в сети. Надеюсь, один из вас может указать мне правильное направление.

Простая проблема: у меня есть класс, унаследованный от TObject. У меня есть конструктор с именем Create, и я хочу вызвать Inherited в самой первой строке единственного конструктора. Не работает!

При компиляции я получаю

[dcc32 Fehler] ULSRAware.pas (58): E2008 Несовместимый 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;
...