Funcao - agrupando funcoes com class

Top  Previous  Next

Caso voce tenha n funções do mesmo tipo e gostaria de agrupa-las de modo a usar uma

"classe" que guarda todos as funções e médotos:

 

// Declare um type como o abaixo:

 

type

  TCalculos = class(TObject) // o "(TObject)" é opcional

  private         // Pode-se usar métodos private e protected como num objeto...

  protected

  public

    function Soma    (const v1, v2: Integer):Integer;

    function Subtract(const v1, v2: Integer): Integer;

  end;

 

// Foi usado um "class" ao invés de "Class(TObject)" pois assim não é preciso

// usar métodos como OnCreate, e Free...

 

 

// Declare uma var global do tipo que tem as funções encapsuladas (se quiser faça isso

// numa unit que contenha suas rotinas

 

var

  Calc: TCalculos;

 

// Desenvolva as funções...

 

function TCalculos.Soma(const v1, v2: Integer): Integer;

begin

  Result := V1 + v2;

end;

 

function TCalculos.Subtract(const v1, v2: Integer): Integer;

begin

  Result := V1 - v2;

end;

 

// Agora para usar no programa é fácil...

 

procedure TForm1.Button1Click(Sender: TObject);

begin

  Caption := IntToStr( Calc.Soma( 1014 ));

end;

 

// ------------- ATENCAO

// se vc quiser usar variaveis locais exemplo:

type

  TCalculos = class(TObject) // o "(TObject)" é opcional

  private         // Pode-se usar métodos private e protected como num objeto...

    X: Integer; // veja isto!!

  protected

  public

    function Soma    (const v1, v2: Integer):Integer;

    function Subtract(const v1, v2: Integer): Integer;

  end;

 

// para usar isto é necessário CRIAR o objeto!!!

procedure TForm1.Button1Click(Sender: TObject);

begin

  Calc := TCalculos.Create;

  Caption := IntToStr( Calc.Soma( 1014 ));

  Calc.Free;

end;