Ver Mensaje Individual
  #2  
Antiguo 31-01-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Reputación: 30
jachguate Va por buen camino
Cita:
Empezado por mrnovice Ver Mensaje
al crear un nuevo componente, me obliga a usar un componente padre que lo encuentro lógico, pero es posible separarlo?
La verdad, no entiendo esta pregunta. Para ser un componente, tu clase debe derivar de TComponent. En otras palabras, en algún punto de la herencia de tu clase, estará TComponent, si no, no es un componente (básico de teoría de objetos).


Cita:
Empezado por mrnovice Ver Mensaje
Segundo. No se si me pudieran informar donde me pueden dar ejemplos de cómo poder usar el create constructor desde un componente algo así
En Delphi, los componentes creados pueden ser "propiedad" de otro componente. De esta manera se cuenta con un mecanismo estándar de notificación entre los componentes (propietario/propiedad de). Gracias a esto, la vcl implementa la liberación automática de memoria de componentes que son propiedad de otros componentes.

He soltado todo ese rollo, para explicar por que el constructor pide un owner.

Para crear una instancia del componente, invocás su constructor, pasándole la referencia a otro componente que será su propietario. Si el componente no tiene un propietario, podes pasarle una referencia vacía (nil), asumiendo vos la responsabilidad de liberarlo cuando sea oportuno.

Por ejemplo:

Código Delphi [-]
var
  q: TQuery; //el TQuery es un componente
begin
  q := TQuery.Create(nil); //no tendrá propietario, entonces
  try
    //usar el query
  finally
    q.Free; //lo libero de manera segura
  end;
end;

¿Es esto lo que buscabas?

Un saludo.
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita