Generics, Record Helper Aninhado e Herança.

Delphi

01/03/2017

Oi pessoal. Estou com um erro que não consigo identificar a causa. Será que alguém pode me ajudar?
Eu tentei fazer o seguinte no Delphi 10.1 Berlin.

TClasseA<T> = class
strict private
  type
    TTipo = (tipo1, tipo2)

    TTipoHelper = record Helper for TTipo
    end;

TClasseB = class(TClassA<TObject>)
end;


Alguém sabe se isso é um erro do próprio Delphi ou se eu cometi algum erro na codificação?
Lucas Silva

Lucas Silva

Curtidas 0

Respostas

Lucas Silva

Lucas Silva

01/03/2017

Eu pulei um "end;" no exemplo que fiz, mas não é a ausência dele que causa erro aqui.

TClasseA<T> = class
strict private
  type
    TTipo = (tipo1, tipo2)

    TTipoHelper = record Helper for TTipo
    end;
end;

TClasseB = class(TClassA<TObject>)
end;
GOSTEI 0
Gutierry Pereira

Gutierry Pereira

01/03/2017

Boa noite, voucê não informou qual erro esta ocorrendo. Mas acredito ser devido ao seu type esta abaixo da definição da primeira classe, além da classe TClassA não existir, ela foi declarada como TClasseA.

Tente assim:
type
  TTipo = (tipo1, tipo2);

  TClasseA<T> = class
  strict private
  end;

  TTipoHelper = record Helper for TTipo
  end;

  TClasseB = class(TClasseA<TObject>)
  end;
GOSTEI 0
POSTAR