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