Records no Turbo / Delphi 2006
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'.