Olá galera, nesta Quick Tips irei mostrar como recuperar o texto dos itens de um Tipo definido pelo usuário, porém podemos recuperar também os tipos que já vem definidos pelo Delphi como o TDataSetState.

 

Vamos ao exemplo

 

Adicione 2 RadioGroup(RGEstado, RGPais)

De uses em TypInfo

 

Agora iremos definir nossos Tipos

 

unit uPrincipal;

 

interface

 

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, ExtCtrls, TypInfo;

 

type

  TUF = (RJ, SP, MG); //Definimos o Tipo UF

  TPais = (Brasil, EUA, Mexico); //Definimos o Tipo Pais

 

  TFrmPrincipal = class(TForm)

    RGEstado: TRadioGroup;

    RGPais: TRadioGroup;

    procedure Button1Click(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    procedure RGEstadoClick(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;


var

  FrmPrincipal: TFrmPrincipal;

  UF : TUF;//Variável de acesso ao tipo TUF

  Pais : TPais;//Variável de acesso ao tipo TPais

implementation

 

Form : onCreate

 

procedure TFrmPrincipal.FormCreate(Sender: TObject);

Var

  I : Integer;

begin

 for I := 0 to 2 do

 begin

   RGEstado.Items.Add(Format('%s',

      [GetEnumName(TypeInfo(TUF), Ord(I))]))

 end;

 for I := 0 to 2 do

 begin

   RGPais.Items.Add(Format('%s',

      [GetEnumName(TypeInfo(TPais), Ord(I))])) //Podemos pegar o texto com a função GetEnumName(TypInfo)

 end;

end;

 

Selecione os dois RadioGroup RGEstado eRGPais : onClick

 

procedure TFrmPrincipal.RGEstadoClick(Sender: TObject);

begin

  ShowMessage( TRadioGroup(Sender).Caption + ' : ' +

  TRadioGroup(Sender).Items.Strings[TRadioGroup(Sender).ItemIndex]);

end;

end.

 

Com esta Quick podemos agora recuperar o conteúdo de nosso Type de forma dinâmica.

 

Fico por aqui até a próxima Quick Tips.

 

Um abraço

 

Wesley Y

wyamazack@rwsolution.com.br