Records no Turbo / Delphi 2006

Escrito em 17 de janeiro de 2007 em Delphi,Linguagem Delphi,Programação por Alexandre José

Records na linguagem Delphi são, basicamente, um conjunto de vários elementos. Cada elemento é chamado de campo(field) e cada campo é formado por um nome(name) e tipo(datatype).

Exemplo:

type
  TTechTips = record
    Campo1 : Integer;
    Campo2 : string;
  end;

No Turbo/Delphi 2006 os records ficaram mais poderosos e espertos! Abaixo listei as suas novas características:

  • Podem possuir construtores, com pelo menos um parâmetro;
  • suportam propriedades e métodos estáticos;
  • suportam sobrecarga de operador;
  • não suportam métodos virtuais(virtual, dynamic e message);
  • não suportam destrutores.

Exemplo de uma estrutura no Turbo/Delphi 2006:

 

type
  TTechTips2006 = record
  strict private
    FValorNome : Integer;
    function getNome: string;
  public
    FPrefixo : string;
    constructor Create(const Nome: Integer);
    property Nome : string read getNome;
  end; 

implementation 

{ TTechTips2006 } 

constructor TTechTips2006.Create(const Nome: Integer);
begin
  FValorNome := Nome;
  FPrefixo := '"utilizando constructor"';
end;
function TTechTips2006.getNome: string;
begin
  Inc(FValorNome);
  Result := Format('%s %d', [FPrefixo, FValorNome]);
end;

Adicione um TMemo no formulário (name: mmo1):

procedure TForm1.FormShow(Sender: TObject);
var
  recAux1 : TTechTips2006;
  recAux2 : TTechTips2006;
begin
  // sem constructor [FValorNome = 0 por padrão]:
  recAux1.FPrefixo := 'D2006: ';
  mmo1.Lines.Add(recAux1.Nome);
  mmo1.Lines.Add(recAux1.Nome);
  // utilizando constructor:
  recAux1 := TTechTips2006.Create(2006);
  mmo1.Lines.Add(recAux1.Nome);
  mmo1.Lines.Add(recAux1.Nome);
  recAux2 := recAux1;
  recAux2.FPrefixo := 'Adicional';
  mmo1.Lines.Add(recAux2.Nome);
  mmo1.Lines.Add(recAux2.Nome);
  mmo1.Lines.Add(recAux1.Nome);
  mmo1.Lines.Add(recAux1.Nome);
  // não é necessário utilizar Free com Records.
end;

Para baixar o source deste artigo clique aqui.


Não há comentários em 'Records no Turbo / Delphi 2006' »

Assine os comentários usando RSS ou faça um TrackBack para 'Records no Turbo / Delphi 2006'.