PDA

Ver la Versión Completa : enumerado


bosterito
15-01-2007, 00:05:34
hola a todos.Quisiera preguntar como definir un enumerado. Por Ej. (lunes, martes, miercoles, jueves, viernes). Desde ya muchas gracias.

roman
15-01-2007, 00:12:47
type
TDia = (lunes, martes, miercoles, jueves, viernes);


// Saludos

bosterito
15-01-2007, 20:32:55
¿Y cuando es un enumerado de enteros?


Salu2

dec
15-01-2007, 20:42:53
Hola,

No sé yo si un "enumerado de enteros" tendría mucho sentido... parecería más bien que precisas un "Array de enteros", algo así:


TEnteros = array of integer;


De todos modos no sé si te confunde el hecho de que puedas tratar los tipos enumerados mediante sus índices, es decir, algo como esto es posible:


procedure TForm1.Button1Click(Sender: TObject);
var
dia: TDia;
begin
dia := miercoles;
if(dia = miercoles) then
ShowMessage('Es miércoles');
end;


Pero también es posible algo como esto:


procedure TForm1.Button1Click(Sender: TObject);
var
dia: TDia;
begin
dia := TDia(3);
if(dia = miercoles) then
ShowMessage('Es miércoles');
end;


Sin embargo en este último caso no verás el "Es miércoles", porque la enumeración se "indiza" comenzando desde cero, es decir, que "miércoles" correspondería al índice 2, y no al 3.

Empero, todavía podemos hacer esto:


type
TDia = (lunes = 1, martes, miercoles, jueves, viernes);

procedure TForm1.Button1Click(Sender: TObject);
var
dia: TDia;
begin
dia := TDia(3);
if(dia = miercoles) then
ShowMessage('Es miércoles');
end;


De modo que ahora sí verías el "Es miércoles", puesto que estamos haciendo que el tipo enumerado "TDia" se indize comenzando desde 1 y no desde 0.

No sé si respondo a tu pregunta o qué. :D