Pessoal, bom dia

Tenho alguns tipos enumerados e estou obtendo informações a respeito dos 
mesmos, no entanto gostaria de escrever rotinas genericas para obter estas 
informações conforme o 'tipo' passado como parametro.

Neste momento eu tenho os seguintes tipos e arrays para armazenar as 
informações que vou precisar referente aos tipos.


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');


Para obter as informações de cada eu uso estas 3 funções para obter informações 
de um determinado Enum, como quero deixar 'genéreo'...gostaria de ter apenas 3 
funções que poderiam ser utilizadas para qualquer tipo, será possivel?

.....
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
      Result := tDModulo;
  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
      Result := tDPessoa;
  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;




Atenc;
Elazar


      
____________________________________________________________________________________
Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com

[As partes desta mensagem que não continham texto foram removidas]

Responder a