Multiple Helpers in the same scope
Example code: Multiple Helpers in the same class scope
{ TPessoa class }
type
TPessoa = class
private
FDataNasc: TDateTime;
public
property DataNasc: TDateTime read FDataNasc write FDataNasc;
end;
TPessoaHelper = class helper for TPessoa
function GetIdade: integer;
property Idade: integer read GetIdade;
//TPessoaFisicaHelper = class helper (TPessoaHelper) for TPessoa
TPessoaFisicaHelper = class helper for TPessoa
function isValidCPF():Boolean;
//TPessoaJuridicaHelper = class helper (TPessoaFisicaHelper) for TPessoa
TPessoaJuridicaHelper = class helper for TPessoa
function isValidCNPJ():Boolean;
TIntHelper = record helper for integer
function ToStr(): String;
function TPessoaFisicaHelper.isValidCPF(): Boolean;
begin
WriteLn('CPF is valid');
function TPessoaJuridicaHelper.isValidCNPJ(): Boolean;
WriteLn('CNPJ is valid');
{ TPessoaHelper }
function TPessoaHelper.GetIdade: integer;
Result := YearsBetween(Self.DataNasc, Now);
{ TIntHelper }
function TIntHelper.ToStr: String;
Result := IntToStr(Self);
procedure TForm1.W3Button6Click(Sender: TObject);
var
oPessoa: TPessoa;
oPessoa := TPessoa.Create;
oPessoa.DataNasc := EncodeDate(1986, 11, 26);
WriteLn(oPessoa.Idade.ToStr);
oPessoa.isValidCPF;
oPessoa.isValidCNPJ;
27
CPF is valid
CNPJ is valid