GARANTIR DESCONTO

Fórum Tipos Enumerados, Definição de #411410

10/01/2012

0

Senhores,

Tenho a necessidade definir dois conjuntos de tipos enumerados, de modo que um contenha o outro.

Os tipos em questão são de operadores lógicos (Igual a, Diferente de, Maior que, Contiver o Texto etc).

O conjunto menor destina-se à propriedade Filter de TDataset e possui valores como (loEqualTo, loGreatherThan etc).

O conjunto maior destina-se a instruções SQL e, além daqueles, requer valores como (loBeginWith, loIsNull etc).

Não sei se o Delphi permite tal implementação. A situação já foi contornada passando um parâmetro adicional aos métodos que manipulam os tipos, indicando se o escopo é um TDataset ou uma instrução SQL. Mas se for possível, gostaria de implementar.

Grato pela atenção.
José Silva

José Silva

Responder

Posts

10/01/2012

Marco Salles

Não deu muito pelo menos para mim a sua real dúvida

Type
   Tipos_Numericos = (ft1,ft2,ft3,ft4,ft5,ft6,ft7,ft8,ft9);

   TConjunto_Numeros =  set of  Tipos_Numericos;



implementation

var
Conjunto_Menor,Conjunto_Maior:TConjunto_Numeros;
begin
Conjunto_Menor:=[ft1..ft4]; //aqui definimos
Conjunto_Maior:=[ft1..ft9]; //aqui definimos
if ft5 in Conjunto_Menor  then
 Showmessage(pertence)
else
   Showmessage(Não pertence);
if ft5 in Conjunto_Maior  then
 Showmessage(pertence)
else
   Showmessage(Não pertence);
Responder

Gostei + 0

11/01/2012

José Silva

Marcos, a implementação sugerida por você não é aceita pelo Delphi: identifier redeclared.
Responder

Gostei + 0

11/01/2012

Marco Salles

Marcos, a implementação sugerida por você não é aceita pelo Delphi: identifier redeclared.


Poxa acabei de testar ???

type
  TForm7 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }

  end;

Tipos_Numericos = (ft1,ft2,ft3,ft4,ft5,ft6,ft7,ft8,ft9);
TConjunto_Numeros = set of Tipos_Numericos;
var
  Form7: TForm7;

implementation

{$R *.dfm}

var
Conjunto_Menor,Conjunto_Maior:TConjunto_Numeros;


procedure TForm7.Button1Click(Sender: TObject);
begin
if ft5 in Conjunto_Menor then
Showmessage(pertence)
else
Showmessage(Não pertence);
if ft5 in Conjunto_Maior then
Showmessage(pertence)
else
Showmessage(Não pertence);
end;


initialization
Conjunto_Menor:=[ft1..ft4]; //aqui definimos
Conjunto_Maior:=[ft1..ft9]; //aqui definimos;

end.


Marco Salles
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar