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]