Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Declarar tipo que pueda tomar varios valores (https://www.clubdelphi.com/foros/showthread.php?t=28291)

adpa 15-12-2005 11:42:05

Declarar tipo que pueda tomar varios valores
 
Hola

Tengo que declarar un tipo en delphi 4 que pueda tomar uno de los siguientes valores. valla de madera,valla de métal, sin valla.
¿Como lo tengo que declarar? ¿Como implemento sus propiedades?

Muchas Gracias

Neftali [Germán.Estévez] 15-12-2005 12:33:31

Código Delphi [-]
type
  //: Tipo para definir tipos de vallas.
   TTipoValla = (tvVallaMetal, tvVallaMadera, tvSinValla);

Cuando tengas que crear una variable o propiedad de éste tipo basta con:

Código Delphi [-]
var
  Tipov:TTipoValla;
....

// para propiedades, por ejemplo.
property TipoValla:TTipoValla read FTipoValla write FTipoValla;

adpa 15-12-2005 12:46:20

Hola,

El problema que tengo es que lo leo de un fichero que viene de la foma
que he escrito antes valla de madera, valla de metal, sin valla.

y cuando yo lo grabo en el fichero lo tengo que grabar de esta manera tambien.

¿Como lo hago?

Estoy un poco perdida, nunca habia trabajado con delphi.


Muchas Gracias

Neftali [Germán.Estévez] 15-12-2005 13:10:48

Basta con que añadas las funciones de conversión.

Código Delphi [-]
function TipoVallaToStr(TipoValla:TTipoValla):String;
begin
  // valla de madera, valla de metal, sin valla
  case TipoValla of
    tvVallaMetal:   Result := 'valla de metal';
    tvVallaMadera:  Result := 'valla de madera';
    tvSinValla:     Result := 'sin valla';
  end;
end;


function StrToTipoValla():TTipoValla;
begin
...Equivalente a la anterior
end;

Otra opcion y si no tienes que tratar mucho con ésto en tu programa, es que definas tres constantes para los diferentes valores y utilices esas constantes olvidandete del tipo TTipoValla, para leer y grabar.

Código Delphi [-]
  STR_VALLA_METAL = ' valla de metal';
  STR_VALLA_MADERA = ' valla de madera';
  STR_VALLA_SINVALLA = 'sin valla';

adpa 15-12-2005 13:20:21

Muchas Gracias, voy a ponerme con ello


La franja horaria es GMT +2. Ahora son las 04:01:48.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi