Hi all

I have some enumerated types on source and each one I will make array to store 
descriptions and another info. At this point I wrote code to get these info 
using 3 functions for each type.

You can see this bellow, but I´ll like to make it using only 3 generic 
functions but do know how;

type
  TDigitalizacaoModulo = (dzmReconhecimento, dzmEncaminhamento, dzmEscritura, 
dzmRegistroProcuracao);
  TDigitalizacaoPessoa = (dzpTodos, dzpFisica, dzpJuridica, dzpTabelionato);
  ...
  ...
  ...
const
  DigitalizacaoModuloDB: array[TDigitalizacaoModulo] of string = ('R', 'E', 
'S', 'X');
  DigitalizacaoModuloDescricao: array[TDigitalizacaoModulo] of string = 
('Reconhecimento', 'Encaminhamento', 'Escritura', 'Registro Procuração');

  DigitalizacaoPessoaDB: array[TDigitalizacaoPessoa] of string = ('A', 'F', 
'J', 'T');
  DigitalizacaoPessoaDescricao: array[TDigitalizacaoPessoa] of string = 
('Todos', 'Física', 'Juridica', 'Tabelionato');
  ...
  ...
  ...
function ObterDigitalizacaoModuloDB(Tipo: TDigitalizacaoModulo): string;
function ObterDigitalizacaoModulo(DB: string): TDigitalizacaoModulo;
procedure DefinirDigitalizacaoModuloDescricao(ListDescricao, ListTipo: 
TStrings);

function ObterDigitalizacaoPessoaDB(Tipo: TDigitalizacaoPessoa): string;
function ObterDigitalizacaoPessoa(DB: string): TDigitalizacaoPessoa;
procedure DefinirDigitalizacaoPessoaDescricao(ListDescricao, ListTipo: 
TStrings);

  ...
  ...
  ...


{ TDigitalizacaoModulo }
function ObterDigitalizacaoModuloDB(Tipo: TDigitalizacaoModulo): string;
begin
  Result := DigitalizacaoModuloDB[Tipo];
end;

function ObterDigitalizacaoModulo(DB: string): TDigitalizacaoModulo;
var
  tDModulo: TDigitalizacaoModulo;
begin
  for tDModulo := Low(TDigitalizacaoModulo) to High(TDigitalizacaoModulo) do
  begin
    if DigitalizacaoModuloDB[tDModulo] = DB then begin
      Result := tDModulo;
      Break;
    end;
  end;
end;

procedure DefinirDigitalizacaoModuloDescricao(ListDescricao, ListTipo: 
TStrings);
var
  tDModulo: TDigitalizacaoModulo;
begin
  if Assigned(ListDescricao) then ListDescricao.Clear;
  if Assigned(ListTipo) then ListTipo.Clear;

  for tDModulo := Low(TDigitalizacaoModulo) to High(TDigitalizacaoModulo) do 
begin
    if Assigned(ListDescricao) then 
ListDescricao.Add(DigitalizacaoModuloDescricao[tDModulo]);
    if Assigned(ListTipo) then ListTipo.Add(DigitalizacaoModuloDB[tDModulo]);
  end;
end;

{ TDigitalizacaoPessoa }
function ObterDigitalizacaoPessoaDB(Tipo: TDigitalizacaoPessoa): string;
begin
  Result := DigitalizacaoPessoaDB[Tipo];
end;

function ObterDigitalizacaoPessoa(DB: string): TDigitalizacaoPessoa;
var
  tDPessoa: TDigitalizacaoPessoa;
begin
  for tDPessoa := Low(TDigitalizacaoPessoa) to High(TDigitalizacaoPessoa) do
  begin
    if DigitalizacaoPessoaDB[tDPessoa] = DB then begin
      Result := tDPessoa;
      Break;
    end;
  end;
end;

procedure DefinirDigitalizacaoPessoaDescricao(ListDescricao, ListTipo: 
TStrings);
var
  tDModulo: TDigitalizacaoPessoa;
begin
  if Assigned(ListDescricao) then ListDescricao.Clear;
  if Assigned(ListTipo) then ListTipo.Clear;

  for tDModulo := Low(TDigitalizacaoPessoa) to High(TDigitalizacaoPessoa) do 
begin
    if Assigned(ListDescricao) then 
ListDescricao.Add(DigitalizacaoPessoaDescricao[tDModulo]);
    if Assigned(ListTipo) then ListTipo.Add(DigitalizacaoPessoaDB[tDModulo]);
  end;
end;


Sorry about bad english.

Atenc;
Elazar
________________________________
Veja quais são os assuntos do momento no Yahoo! + Buscados: Top 10 - 
Celebridades - Música -Esportes


      
____________________________________________________________________________________
Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com
_______________________________________________
Delphi mailing list -> Delphi@elists.org
http://lists.elists.org/cgi-bin/mailman/listinfo/delphi

Reply via email to