PDA

Ver la Versión Completa : Pregunta sobre los create.


Lucciano
18-09-2008, 20:53:38
Hola como andan, necesito aclarar ciertos conceptos y quizas uds, me puedan ayudar. Cual es la gran diferencia al momento de crear un objeto, como por ejemplo un TSQLQuery, y ponerle en el create, nil, self, application.

Es decir.
var
Consulta: TSQLQuery;
Begin
.
.
Consulta:=TSQLQuery.Create(nil) o
Consulta:=TSQLQuery.Create(self) o
Consulta:=TSQLQuery.Create(application)
.
end;


Gracias, :)

coso
18-09-2008, 21:13:00
Hola, el parametro q se le pasa al create es su 'parent', esto es, el objeto al que esta enlazado. Sirve para algunas cosas como por ejemplo, al destruir el parent, destruir el objeto en si (si no ha pasado ya), al pintar el parent, pintar tambien todos sus 'child', en ese caso tambien el objeto en si. te recomiendo que leas la ayuda de delphi al respecto. un saludo.

maeyanes
18-09-2008, 21:13:56
Hola...

Lo que haces al pasarle un parámetro al momento de crear un componente, es indicarle quien va a ser su "dueño", esto es, quien se va a encargar de destruir al objeto en cuestion.


Consulta:=TSQLQuery.Create(nil)


Aquí no le estás pasando ningún Owner al objeto nuevo y por consiguiente tienes que destruirlo desde código (Consulta.Free) cuando ya no lo necesites.


Consulta:=TSQLQuery.Create(self)


Aquí el Owner del objeto es el objeto desde donde lo creas. Esto es, si tu código está dentro de un método de una forma, por ejemplo, el Owner de Consulta será esta misma:


contructor TForm1.CreateForm(Sender: TObject);
begin
Consulta := TSQLQuery.Create(Self) // El Owner es la misma forma
end;


y para finalizar


Consulta:=TSQLQuery.Create(application)


Aquí estás indicando que el Owner del objeto es la misma aplicación y hasta que esta termine de ejecutarse, el objeto no se destruirá...


Espero que mi pequeña explicación te ayude a entender mejor el concepto de Owner de un componente.



Saludos...

coso
18-09-2008, 21:16:45
ahora tengo yo una duda. ¿El owner y el parent son lo mismo?

maeyanes
18-09-2008, 21:17:19
Hola...

Hola, el parametro q se le pasa al create es su 'parent', esto es, el objeto al que esta enlazado. Sirve para algunas cosas como por ejemplo, al destruir el parent, destruir el objeto en si (si no ha pasado ya), al pintar el parent, pintar tambien todos sus 'child', en ese caso tambien el objeto en si. te recomiendo que leas la ayuda de delphi al respecto. un saludo.

Eh... nop... El Parent y el Owner de un componente no tienen que ser necesariamente el mismo. El Parent es el que le indica donde se va a situar un componente (un panel, una forma, etc...)



Saludos...

maeyanes
18-09-2008, 21:18:08
ahora tengo yo una duda. ¿El owner y el parent son lo mismo?


Lee mi mensaje anterior... :D :D

coso
18-09-2008, 21:41:29
pues convencido, suerte que no los uso mucho directamente.

Lucciano
20-09-2008, 22:24:12
Hola amigos, muchas gracias a todos especialmente a ti maeyanes por ser tan claro y sensillo.

Saludos!

PD: Ahora si me quedo claro!.:)