In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

pregunta importante

Foro de Xailer profesional en español
Responder
Francisco Sanchez
Mensajes: 532
Registrado: Mié Feb 09, 2005 6:20 pm

pregunta importante

Mensaje por Francisco Sanchez »

Vamos a ver, un formulario, llamo a una clase que me pinta una toolbar, la
instancia a una variable local. En esta clase que crea la toolbar, crea un
objeto TPicture(). Cuando cierro el formulario llamante automáticamente hace
:End() de la toolbar esta? O tengo que hacer yo oToolBar:End() parra que
destruya el objeto tpicture?
Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL -
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9254
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

pregunta importante

Mensaje por ignacio »

Francisco,
Todo depende como funciones con el objeto Picture. Si dicho Tpicture se
asigna a una propiedad oBkGnd de un control se destruirá automaticamente
cuando destruyas el control. Igualmente pasaría lo mismo con la propiedad
oPicture en un objeto TImage. Sin embargo si tu creas el TPicture y
manualmente lo utilizas para hacer alguna operación de pintado, entonces
tienes que destruirlo tu llamando a su método Destroy().
Un saludo,
>>llamo a una clase que me pinta una toolbar
S
Si el parent del objeto TPicture es un control que destruyes mediante End()
no tienes que hacer nada. En caso contrario tendrás que destuir el
"Francisco Sanchez" <francisco@softwaretotal.biz> escribió en el mensaje
news:[email=4239e659@ozsrv2.ozlan.local...]4239e659@ozsrv2.ozlan.local...[/email]
> Vamos a ver, un formulario, llamo a una clase que me pinta una toolbar, la
> instancia a una variable local. En esta clase que crea la toolbar, crea un
> objeto TPicture(). Cuando cierro el formulario llamante automáticamente
> hace :End() de la toolbar esta? O tengo que hacer yo oToolBar:End() parra
> que destruya el objeto tpicture?
>
>
>
> Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL -
>
>
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Francisco Sanchez
Mensajes: 532
Registrado: Mié Feb 09, 2005 6:20 pm

pregunta importante

Mensaje por Francisco Sanchez »

ya esto lo tengo claro, quizas exprese mal mi pregunta. Vamos a Ver, una
clase toolbar propia en la cual creo un objeto oFondo := TPicture()...... y
lo asigno al fondo de la toolbar, o rebarband, ahora no recuerdo como es y
no voy a mirarlo, bueno ese es el caso. A esta clase que pinta la toolbar la
llamo desde un formulario. La toolbar en el formulario la t engo instanciada
a uan variable como por ejemplo puede ser "oVariableToolbar", vale, pues
cuando termina el formulario, si yo no hago oVariableToolBar:End() para que
me ejecute el metodo End() de esa clase mia, si no ejecuto el metodo end()
de esa clase el objeto oFondo que hice un tPicture()...... seguira activo y
consumiendo recursos, esa es realmente la cuestion, mientras que si por el
contrario me encargo de hacer oVariabletoolbar:End() para ejecutar su medodo
end() en el cual si me ocupo de hacer el correspondiente oFondo:Destroy().
Esto es exactamente lo que queria explicar, un poco liado, y yo soy algo
parco explicandome. Disculpa mi soberana torpeza para expresarme. Soy muy
torpe expresando lo que pienso.
Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL -
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5706
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

pregunta importante

Mensaje por jfgimenez »

Paco,
si es lo que creo, en tu clase tienes que desarrollar el método Free(), de
esta forma:
METHOD Free() CLASS Txxxxx
::oPicture:End()
RETURN Super:Free()
Y ya está. Da lo mismo que la toolbar la destruyas llamando a :End() o que
se destruya sola al cerrar el formulario. Xailer se encargará de llamar al
método Free() de una forma o de otra.
--
Un saludo,
José F. Giménez
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Francisco Sanchez
Mensajes: 532
Registrado: Mié Feb 09, 2005 6:20 pm

pregunta importante

Mensaje por Francisco Sanchez »

no es exactamente asi. Vamos a ver me he creado una clase que se encarga de
crearme la rebar, la rebarband la toolbar, etccc... Esta clase la llamo e
instancio a una variable desde un formulario. Esta clase por supuesto tiene
su propio metodo End() para destruyir los objetos TPicture() que cree para
tal efecto en esta clase. Cuando yo cierro el formulario, esta clase que
pinta la toolbar sigue instanciada en una variable que lo que hago es
oVariable:End() para que ejecute el metodo End() de esta clase para que
ejecute lo correspondientes :Destroy de los tpicture que se crearon en esta
clase, espero haberme expresado bien ahora.
Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL -
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5706
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

pregunta importante

Mensaje por jfgimenez »

Paco,
> no es exactamente asi. Vamos a ver me he creado una clase que se encarga
> de crearme la rebar, la rebarband la toolbar, etccc... Esta clase la llamo
> e instancio a una variable desde un formulario. Esta clase por supuesto
> tiene su propio metodo End() para destruyir los objetos TPicture() que
> cree para tal efecto en esta clase. Cuando yo cierro el formulario, esta
> clase que pinta la toolbar sigue instanciada en una variable que lo que
> hago es oVariable:End() para que ejecute el metodo End() de esta clase
> para que ejecute lo correspondientes :Destroy de los tpicture que se
> crearon en esta clase, espero haberme expresado bien ahora.
Entonces tienes que destruirlo tú directamente.
Xailer siempre llamará al método Free() de cualquier control que tenga el
formulario. Pero si tienes alguna clase que no es un control, aunque cree
controles dentro, Xailer no la destruirá, y lo tienes que hacer tú.
--
Un saludo,
José F. Giménez
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Francisco Sanchez
Mensajes: 532
Registrado: Mié Feb 09, 2005 6:20 pm

pregunta importante

Mensaje por Francisco Sanchez »

OK ESTA CLARO lo estaba haciendo bien, pero de milagro pues cai en la cuenta
por logica y empece a aplicarlo. Lo tengo bien entonces.
Atentamente : Francisco Sanchez GERENTE GRUPO ST - Software TOTAL -
Responder