Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-05-2007
[David] David is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Málaga
Posts: 417
Poder: 21
David Va por buen camino
Smile Que quiere decir set of (ver código)

Hola

La pregunta es que significa un código como el que pongo , TState , que seria ? Un array , una definición de elementos ¿Cómo se le llama a eso en delphi?

Y por otra parte la segunda sentencia set of , que quiere decir . No lo encuentro en la ayuda de delphi y he visto un código similar al que he puesto , y no llego a entenderlo.

Código Delphi [-]
type
TState= (Teditar,Tinsertar, Tborrrar, Tver);
TStates= set of TState;

Un saludo
Responder Con Cita
  #2  
Antiguo 13-05-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Cita:
Empezado por David
No lo encuentro en la ayuda de delphi
¿Probaste buscando "sets" en la ayuda?

En el código que tu pones, TStates es un conjunto de valores del tipo TState. A su vez, TState es un tipo "enumerado" (busca en la ayuda "enumerated types")

Por ejemplo:
Código Delphi [-]
var
  States: TStates;
begin
  // Aqui le asignamos a States un conjunto vacio
  States:= [];
  // Aqui le asignamos dos valores
  States:= [Teditar,Tinsertar];
  // Aqui le quitamos uno
  States:= [Teditar,Tinsertar] - [TInsertar];
  // Aqui comprobamos si un valor esta dentro del conjunto
  if TInsertar in [States] then
  begin

  end;
end;

Última edición por seoane fecha: 13-05-2007 a las 17:48:25.
Responder Con Cita
  #3  
Antiguo 13-05-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Creo que ayudaría también escribir de otra forma. Es decir, esto:

Código Delphi [-]
type
  TState = (Teditar, Tinsertar, Tborrrar, Tver);
  TStates = set of TState;

Suele escribirse así:

Código Delphi [-]
type
  TState = (sEditar, sInsertar, sBorrrar, sVer);
  TStates = set of TState;

Es decir, limitamos las "T" para los tipos, propiamente dichos. Los elementos del conjunto del tipo "TState", en este caso, se inician en minúsculas con la primera letra del tipo en cuestión.

Código Delphi [-]
type
  TCityState = (ceEditar, ceInsertar, ceBorrrar, ceVer);
  TCityStates = set of TState;

En este caso cada elemento del conjunto comenzaría con las dos primeras letras de cada palabra contenida en el nombre del tipo "TCityState". No es que quiera talibanizar al respecto, pero, definitivamente algo así sería cuando menos confuso para mí:

Código Delphi [-]
type
  TState = (Teditar, Tinsertar, Tborrrar, Tver);
  TStates = set of TState;

¿Cómo saber si "Teditar" es un tipo de clase (por ejemplo...) o un elemento de un conjunto del tipo "TState"? Tal como está arriba ya es algo confuso, aunque todavía queda medio claro, pero, utilizando estos identificadores entre el código fuente que sea menester... aún se complicaría más su significado.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 13-05-2007 a las 18:16:36.
Responder Con Cita
  #4  
Antiguo 14-05-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Cita:
Empezado por dec
Código Delphi [-]
type
  TCityState = (ceEditar, ceInsertar, ceBorrrar, ceVer);
  TCityStates = set of TState;

En este caso cada elemento del conjunto comenzaría con las dos primeras letras de cada palabra contenida en el nombre del tipo "TCityState".
ajá, ok, entendido, queda clarísimo

Saludetes.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 14-05-2007 a las 04:23:51.
Responder Con Cita
  #5  
Antiguo 14-05-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

¿Qué tienes en contra? ¿eh? ¿eh? ¿eh?

No he hecho sino seguir el estilo de la VCL. Algunos ejemplos, aunque que es verdad que no siempre se cumple lo que digo:

Código Delphi [-]
  TPosition = (poDesigned, poDefault, poDefaultPosOnly, poDefaultSizeOnly,
    poScreenCenter, poDesktopCenter, poMainFormCenter, poOwnerFormCenter);

Ahí no se cumple, porque se usa "po" y según yo se ha de usar "p...", pero, en fin, valga "po" que incluso queda más claro, y, desde luego, en cualquier caso más claro que:

Código Delphi [-]
  TPosition = (TDesigned, TDefault, TDefaultPosOnly, TDefaultSizeOnly,
    TScreenCenter, TDesktopCenter, TMainFormCenter, TOwnerFormCenter);

Pero en otros casos se cumple lo que digo:

Código Delphi [-]
  TCloseAction = (caNone, caHide, caFree, caMinimize);

  TShowAction = (saIgnore, saRestore, saMinimize, saMaximize);

  TDefaultMonitor = (dmDesktop, dmPrimary, dmMainForm, dmActiveForm);

  TFormState = set of (fsCreating, fsVisible, fsShowing, fsModal, fsCreatedMDIChild, fsActivated);

PD. Otra cosa es que me explicara con el (_._), como diría Julián.

__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 14-05-2007 a las 04:30:03.
Responder Con Cita
  #6  
Antiguo 14-05-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Estimado dec, veo que el tamaño de letra usado por Lepe, no fue suficiente . Él no se refería a la convención que citas- con la que muy posiblemente esté de acuerdo -si no a que no la estás cumpliendo tú mismo en tu ejemplo:

Código Delphi [-]
TCityState = (ceEditar, ceInsertar, ceBorrrar, ceVer);

O sea:

Código Delphi [-]
TCityState = (cSEditar, cSInsertar, cSBorrrar, cSVer);



// Saludos
Responder Con Cita
  #7  
Antiguo 14-05-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Jo, jo, jo... y eso que lo miré una y otra vez... Este Lepe es un cachondo. ¡Como que es de Lepe! Je, je, je, je.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Me pueden decir Como conectar Delphi 6 a BD Sql2000 en nativo?? Ivan Rivera Conexión con bases de datos 10 12-04-2007 22:58:20
No es lo mismo, ni quiere decir lo mismo obiwuan Humor 35 21-12-2006 20:25:48
Lo que quiere decir el profesor.. marcoszorrilla La Taberna 2 07-10-2006 07:22:56
Me podrian decir cual es el Error!! juliopag1 Firebird e Interbase 2 28-09-2005 13:57:07
Me podrian decir sobre estas extensiones.. wichosaenz Conexión con bases de datos 4 18-03-2005 17:47:24


La franja horaria es GMT +2. Ahora son las 10:35:09.


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
Copyright 1996-2007 Club Delphi