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( 10, 14 )); 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( 10, 14 )); Calc.Free; end;
|