En este método de la clase trbtn
deleteobject (::hBack) solo se aplica cuando se botón creado esta contenido en una trbgroup, y si no es así.. PQ no se usa..
debería destruirse o no
METHOD Destroy() CLASS TRBtn
DeleteObject( ::hArrow )
if ::oWnd:IsKindOf( "TRBGROUP" )
if ::hBack != ::oWnd:hBack
DeleteObject( ::hBack )
endif
endif
PARA ANTONIO LINARES SOBRE CLASE TRBTN
-
- Posts: 330
- Joined: Fri May 25, 2007 9:06 pm
- Antonio Linares
- Site Admin
- Posts: 42833
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 157 times
- Been thanked: 121 times
- Contact:
Re: PARA ANTONIO LINARES SOBRE CLASE TRBTN
Si, tienes razón, debería eliminarse siempre sino es el mismo que el de su contenedor:
gracias!
Code: Select all | Expand
// if ::oWnd:IsKindOf( "TRBGROUP" )
if ::hBack != ::oWnd:hBack
DeleteObject( ::hBack )
endif
// endif
gracias!

- Patricio Avalos Aguirre
- Posts: 1070
- Joined: Fri Oct 07, 2005 1:56 pm
- Location: La Serena, Chile
- Contact:
Re: PARA ANTONIO LINARES SOBRE CLASE TRBTN
Hola
hice el cambio y me arrojo error
Error occurred at: 24/09/2012, 09:44:58
Error description: Warning BASE/1004 Message not found: TRIBBONBAR:HBACK
Stack Calls
===========
Called from: source\rtl\tobject.prg => TRIBBONBAR:ERROR( 0 )
Called from: source\rtl\tobject.prg => TRIBBONBAR:MSGNOTFOUND( 0 )
Called from: source\rtl\tobject.prg => TRIBBONBAR:HBACK( 0 )
Called from: c:\fwh\source\classes\TRBTN.prg => TRBTN:DESTROY( 876 )
Called from: => TWINDOW:HANDLEEVENT( 0 )
Called from: c:\fwh\source\classes\CONTROL.prg => TCONTROL:HANDLEEVENT( 1701 )
Called from: c:\fwh\source\classes\TRBTN.prg => TRBTN:HANDLEEVENT( 1526 )
Called from: c:\fwh\source\classes\WINDOW.prg => _FWH( 3152 )
Called from: => WINRUN( 0 )
Called from: c:\fwh\source\classes\WINDOW.prg => TWINDOW:ACTIVATE( 978 )
Called from: .\Wcta.PRG => MAIN( 31 )
Saludos
Patricio
__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
Patricio
__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
- Antonio Linares
- Site Admin
- Posts: 42833
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 157 times
- Been thanked: 121 times
- Contact:
Re: PARA ANTONIO LINARES SOBRE CLASE TRBTN
Cierto, solo un rbgroup tiene la data hBack...
lo dejamos asi:
lo dejamos asi:
Code: Select all | Expand
if ::oWnd:IsKindOf( "TRBGROUP" ) .and. ::hBack != ::oWnd:hBack
DeleteObject( ::hBack )
endif
-
- Posts: 330
- Joined: Fri May 25, 2007 9:06 pm
Re: PARA ANTONIO LINARES SOBRE CLASE TRBTN
MASTER ANTONIO Y PATRICIO
Esto:
if ::oWnd:IsKindOf( "TRBGROUP" ) .and. ::hBack != ::oWnd:hBack
DeleteObject( ::hBack )
endif
es lo mismo que decir:
if ::oWnd:IsKindOf( "TRBGROUP" )
if ::hBack != ::oWnd:hBack
DeleteObject( ::hBack )
endif
endif
de la clase original de TRBTN, ahora hBack como data la posee la clase trbgroup y tambien la clase trbtn es cosa de leer..
en este metodo destroy ( ojo de la clase TRBTN ) que preguntamos:
1.- si es ::oWnd de la clase TRBGROUP , y esto para que, simple para poder comparar si el hBack del TRBTN no es igual al de su contenedor y asi poder eliminarlo
lo que no cuadra es cuando el TRBTN no esta contenido en un RBGROUP, que se hace :::???
SIMPLE
eliminar el objeto de frenton quedando el codigo asi
if ::oWnd:IsKindOf( "TRBGROUP" )
if ::hBack != ::oWnd:hBack
DeleteObject( ::hBack )
endif
Else
DeleteObject( ::hBack )
endif
Que opinas MASTER
atento a tus comentarios.
Pdt. se me olvidaba master,, porque hay que comparar los dos hBack,, el del TRBtn y el del TRBGROUP.. ??
Esto:
if ::oWnd:IsKindOf( "TRBGROUP" ) .and. ::hBack != ::oWnd:hBack
DeleteObject( ::hBack )
endif
es lo mismo que decir:
if ::oWnd:IsKindOf( "TRBGROUP" )
if ::hBack != ::oWnd:hBack
DeleteObject( ::hBack )
endif
endif
de la clase original de TRBTN, ahora hBack como data la posee la clase trbgroup y tambien la clase trbtn es cosa de leer..
en este metodo destroy ( ojo de la clase TRBTN ) que preguntamos:
1.- si es ::oWnd de la clase TRBGROUP , y esto para que, simple para poder comparar si el hBack del TRBTN no es igual al de su contenedor y asi poder eliminarlo
lo que no cuadra es cuando el TRBTN no esta contenido en un RBGROUP, que se hace :::???
SIMPLE
eliminar el objeto de frenton quedando el codigo asi
if ::oWnd:IsKindOf( "TRBGROUP" )
if ::hBack != ::oWnd:hBack
DeleteObject( ::hBack )
endif
Else
DeleteObject( ::hBack )
endif
Que opinas MASTER
atento a tus comentarios.
Pdt. se me olvidaba master,, porque hay que comparar los dos hBack,, el del TRBtn y el del TRBGROUP.. ??
- Antonio Linares
- Site Admin
- Posts: 42833
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 157 times
- Been thanked: 121 times
- Contact:
Re: PARA ANTONIO LINARES SOBRE CLASE TRBTN
Se comparan porque puede ser el mismo que el de su contenedor, en cuyo caso no hay que destruirlo.
gracias!
gracias!
