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 28-08-2006
supermilloriver supermilloriver is offline
Miembro
 
Registrado: jul 2005
Posts: 32
Poder: 0
supermilloriver Va por buen camino
Variables de clase

Hola's:
Mi pregunta es la siguiente:
¿Cómo hago para declarar variables de clase?, yo se que un procedumiento de clase lo declarro: class procedure blabla..., pero las variables?

gracias y saludos.
Gabriel
Responder Con Cita
  #2  
Antiguo 28-08-2006
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
Pues del modo habitual:
Código Delphi [-]
type
TMiClase = class()
 // Lo que sea

var
miVariable: TMiClase;

¿O te refieres a otra cosa?
Responder Con Cita
  #3  
Antiguo 28-08-2006
Avatar de DarKraZY
DarKraZY DarKraZY is offline
Miembro
 
Registrado: ago 2003
Posts: 460
Poder: 21
DarKraZY Va por buen camino
Hola supermilloriver

En el caso de declarar variables haces como lo harías normalmente:
Código Delphi [-]
var
  variable: TClass;
begin
  variable := TClass.Create;
end;

Pero si sólo deseas utilizar los procedimientos de clase no es necesario declarar nada, basta con utilizar la clase:
Código Delphi [-]
begin
  TClass.EjecutarMetodo; // metodo de clase
end;
Responder Con Cita
  #4  
Antiguo 28-08-2006
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
Siento que estamos confundiendo. La pregunta no es cómo declarar una variable de una clase dada sino como declarar una variable de clase en una clase dada.



Sí, es confuso. Pero una cosa es tener una variable cuyo tipo de datos es una clase dada:

Código Delphi [-]
var
  Clase: TLaClaseDada;

y otra que una clase dada tenga una variable de clase:

Código Delphi [-]
type
  TLaClaseDada = class(TLaClaseAncestra)
    class UnaVariable: UnTipoDeDatos;
  end;

de manera de poder usar UnaVariable sin necesidad de crear una instancia de la clase, tal como indica DarKraZY para los procedimientos (de clase).

Bueno, luego de este rollo, la mala noticia:

Delphi no admite variables de clase.

// Saludos
Responder Con Cita
  #5  
Antiguo 28-08-2006
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
A menos que se esté usando Delphi 2006...

Un ejemplo de la ayuda:

Código Delphi [-]
type
  TMyClass = class
  public
    class var        // Introduce a block of class static fields.
      Red: Integer;
      Green: Integer;
      Blue: Integer;
    var              // Ends the class var block.
    InstanceField: Integer;
  end;

Como usarlas:

Código Delphi [-]
TMyClass.Red := 1;
TMyClass.Green := 2;
TMyClass.Blue := 3;

Otra forma:

Código Delphi [-]
var
  myObject: TMyClass;

// This code has the same effect as the assignments to Red, Green, and Blue above:
myObject.Red := 1;
myObject.Green := 2;
myObject.Blue := 3;

Saludos...
Responder Con Cita
  #6  
Antiguo 28-08-2006
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
¡Ah! Gracias por la aclaración Marcos. Si el IDE no fuera tan lento, esto me animaría más a usar D2006.

// Saludos
Responder Con Cita
  #7  
Antiguo 28-08-2006
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Pues si instalas solo la personalidad de Win32, no es tan lento... claro, ahora lo tengo usando en una P4 Dual Core con 512MB de RAM...


Saludos...
Responder Con Cita
  #8  
Antiguo 28-08-2006
supermilloriver supermilloriver is offline
Miembro
 
Registrado: jul 2005
Posts: 32
Poder: 0
supermilloriver Va por buen camino
Era eso

Cita:
Empezado por roman
Siento que estamos confundiendo. La pregunta no es cómo declarar una variable de una clase dada sino como declarar una variable de clase en una clase dada.



Sí, es confuso. Pero una cosa es tener una variable cuyo tipo de datos es una clase dada:


Código Delphi [-]
var
Clase: TLaClaseDada;





y otra que una clase dada tenga una variable de clase:


Código Delphi [-]
type
TLaClaseDada = class(TLaClaseAncestra)
class UnaVariable: UnTipoDeDatos;
end;





de manera de poder usar UnaVariable sin necesidad de crear una instancia de la clase, tal como indica DarKraZY para los procedimientos (de clase).

Bueno, luego de este rollo, la mala noticia:

Delphi no admite variables de clase.

// Saludos

Bueno, gracias Román, era eso a lo que me refería, aunque me decepcionó la mala noticia, jeje.
Salutti
Responder Con Cita
  #9  
Antiguo 28-08-2006
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Que versión de Delphi usas? Por que si es menor a Delphi 2006, pues si, la noticia es mala...



Saludos...
Responder Con Cita
  #10  
Antiguo 28-08-2006
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,

Cita:
Empezado por maeyanes
Que versión de Delphi usas? Por que si es menor a Delphi 2006, pues si, la noticia es mala...
Bueno. Más arriba Román dijo cómo se pueden utilizar variables de clase en versiones anteriores de Delphi:

Código Delphi [-]
type
  TLaClaseDada = class(TLaClaseAncestra)
    class UnaVariable: UnTipoDeDatos;
  end;

Lo que parece es que BDS 2006 amplía el asunto y pueden ahora declararse bloques de ese tipo de variables, pero, en Delphi 7, por ejemplo, pueden declararse variables de clase tal como se ve.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #11  
Antiguo 28-08-2006
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
¡Nooo!

Quizá no fui claro. Yo sólo estaba aclarando lo que sería una variable de clase pero como mencioné al final, en Delphi (versión <= 7, según ahora sabemos) no existen las variables de clase. La declaración que citas era sólo la hipotética forma de hacerlo que- además -parecería ser incorrecta.

// Saludos
Responder Con Cita
  #12  
Antiguo 28-08-2006
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,

Caray. Pues yo no sólo hubiera jurado que podían utilizarse variables de clase en Delphi 7 y versiones anteriores,... ¡es que debo haber soñado que las he utilizado alguna vez! Porque así me lo parecía... Bueno. Pues lamento haber metido la pata.
__________________
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
Clase Serializable luismolina OOP 7 09-05-2006 23:10:53
nombre de variables de una clase Mariana OOP 8 25-10-2005 17:48:34
variables variables (manual php) salvica PHP 0 25-09-2005 16:44:52
...la clase... Jure Humor 0 27-07-2004 20:00:47
Clase de Catellano Investment Humor 0 30-09-2003 13:59:22


La franja horaria es GMT +2. Ahora son las 20:23:23.


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