Fórum Tipos Enumerados, Definição de #411410
10/01/2012
0
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
Curtir tópico
+ 0Posts
10/01/2012
Marco Salles
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);
Gostei + 0
11/01/2012
José Silva
Gostei + 0
11/01/2012
Marco Salles
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
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)