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