Ver Mensaje Individual
  #3  
Antiguo 05-07-2007
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.934
Reputación: 27
delphi.com.ar Va por buen camino
Simplemente puedes definir un tipo enumerado, y el compilador decidirá según los datos de la enumeración el espacio a reservado de la variable:
Código Delphi [-]
uses
  SysUtils, Dialogs;

type
  TEnumeracion1 = (Valor1 = 1, Valor2 = 2, Valor3 = 3);
  TEnumeracion2 = (eValor1 = 1, eValor2 = 2, eValor3 = 30000);

begin
  ShowMessageFmt('Enum1: %d, Enum2: %d', [SizeOf(TEnumeracion1), SizeOf(TEnumeracion2)]);
end.

Es bueno saber, que como las variables son representadas por tipos numéricos estándard, pueden contener algun valor que no este definido en la enumeración:
Código Delphi [-]
type
  TEnumeracion = (Valor1 = 5, Valor2 = 27, Valor3 = 60);

var
  C: TEnumeracion;
begin
  C := TEnumeracion(70);
  ShowMessage(IntToStr(Integer(C)));
end.

Si no defines los valores de la enumeración, serán correlativos iniciando de cero:
Código Delphi [-]
type
  TEnumeracion = (Valor1, Valor2, Valor3);

begin
  ShowMessageFmt('Valor 1: %d, Valor 2: %d, Valor 3: %d', [Integer(Valor1), Integer(Valor2), Integer(Valor3)]);
end.
o del último valor asignado:
Código Delphi [-]
type
  TEnumeracion = (Valor1 = 100, Valor2, Valor3);

begin
  ShowMessageFmt('Valor 1: %d, Valor 2: %d, Valor 3: %d', [Integer(Valor1), Integer(Valor2), Integer(Valor3)]);
end.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita