FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour EXCESS RELEASE OF FONT
Posts: 563
Joined: Sun Oct 09, 2005 07:23 PM
Re: EXCESS RELEASE OF FONT
Posted: Sun Dec 14, 2014 03:36 PM
Te copio el que me mandaste modificado. El problema ha surgido cuando he añadido el LISTBOX.

Code (fw): Select all Collapse
#include "FiveWin.ch"

static oWnd
static oFont
static oFont2

function Main()
  public oBru
      
   DEFINE BRUSH oBru COLOR nrgb(0,0,30)
   DEFINE FONT oFont NAME "MS Sans Serif" SIZE 0, -12
   DEFINE FONT oFont2 NAME "MS Sans Serif" SIZE 0, -14 BOLD

   DEFINE WINDOW oWnd TITLE 'PRUEBAFONT' BRUSH oBru MENU MenuPpal() 
        @ 18,10 BUTTON oBtn1 PROMPT 'Fonts Publicas' OF oWnd;
                       ACTION DialogoPublic(oWnd);
                       SIZE 150,40; // Ancho, Alto                                 
                       UPDATE
   ACTIVATE WINDOW oWnd MAXIMIZED
       
   oFont:End()
return nil

function DialogoPublic(oPadre)
  local oDlg, oBtn1
  local oTbr, aRolloCalc:={1,2,3,4,5,6}

   DEFINE DIALOG oDlg OF oPadre FROM 1,10 TO 25,80;


       @ 1, 1 SAY "Pruebas con Fonts" FONT oFont2;
                     COLOR nrgb(0,0,170),nrgb(220,220,220);
                     SIZE 150, 19 ;
                     OF oDlg
                     
       @ 3, 3 LISTBOX oTbr FIELDS ;
                     aRolloCalc;
                     HEAD 'valor' OF oDlg ;
                     FONT oFont2 COLOR  nrgb(0,0,0),nrgb(255,255,200) ;
                     UPDATE                  
                     
       @ 3,30 BUTTON oBtn1 PROMPT 'Salir' OF oDlg;
                       ACTION oDlg:end();
                       SIZE 25,20 ;                                
                       UPDATE
                       
   ACTIVATE DIALOG oDlg CENTERED
return nil
    
static function MenuPpal()
  local oMenu

  MENU oMenu
    MENUITEM '&Publicas' ACTION DialogoPublic(oWnd) MESSAGE 'Opción con variables publicas'
    MENUITEM '&Salida' ACTION oWnd:end() MESSAGE 'Salida del Programa'
  ENDMENU
return oMenu
Posts: 563
Joined: Sun Oct 09, 2005 07:23 PM
Re: EXCESS RELEASE OF FONT
Posted: Sun Dec 14, 2014 03:41 PM

Al pulsar por segunda vez en el botón para entrar en el diálogo la letra ya no es la correcta.

Posts: 563
Joined: Sun Oct 09, 2005 07:23 PM
Re: EXCESS RELEASE OF FONT
Posted: Sun Dec 14, 2014 03:46 PM
ESte es el contenido del fichero log con los errores que genera automáticamente el programa:

Code (fw): Select all Collapse
12/14/14 16:45:18: EXCESS RELEASE OF FONT MS Sans Serif[ hFont : 0] ( nCount : 0 )
     <-TFONT:END(246) <-TCONTROL:DESTROY(2178) <-(b)TWBROWSE:TWBROWSE(650) <-TWBROWSE:DESTROY(0) <-TWINDOW:HANDLEEVENT(0) <-TWBROWSE:HANDLEEVENT(1733) <-_FWH(3341) <-DIALOGBOXINDIRECT(0) <-TDIALOG:ACTIVATE(286)
    ------------------------------------------------------------    
12/14/14 16:45:36: EXCESS RELEASE OF FONT MS Sans Serif[ hFont : 0] ( nCount : -1 )
     <-TFONT:END(246) <-TCONTROL:DESTROY(2178) <-(b)TWBROWSE:TWBROWSE(650) <-TWBROWSE:DESTROY(0) <-TWINDOW:HANDLEEVENT(0) <-TWBROWSE:HANDLEEVENT(1733) <-_FWH(3341) <-DIALOGBOXINDIRECT(0) <-TDIALOG:ACTIVATE(286)
    ------------------------------------------------------------    
12/14/14 16:45:38: EXCESS RELEASE OF FONT MS Sans Serif[ hFont : 0] ( nCount : -2 )
     <-TFONT:END(246) <-TCONTROL:DESTROY(2178) <-(b)TWBROWSE:TWBROWSE(650) <-TWBROWSE:DESTROY(0) <-TWINDOW:HANDLEEVENT(0) <-TWBROWSE:HANDLEEVENT(1733) <-_FWH(3341) <-DIALOGBOXINDIRECT(0) <-TDIALOG:ACTIVATE(286)
    ------------------------------------------------------------    
12/14/14 16:45:40: EXCESS RELEASE OF FONT MS Sans Serif[ hFont : 0] ( nCount : -3 )
     <-TFONT:END(246) <-MAIN(21)
    ------------------------------------------------------------
Posts: 563
Joined: Sun Oct 09, 2005 07:23 PM
Re: EXCESS RELEASE OF FONT
Posted: Sun Dec 14, 2014 03:54 PM
El LISTBOX es el que elimina/modifica la variable oFont que se emplee para él.
Estoy empleando en el enlazado la libreria del TBBROSE de Hernan VERSIÓN 17.
Viendo el mensaje de error del log la línea a la que hace referencia con número 650 contiene lo siguiente:

Code (fw): Select all Collapse
   METHOD Destroy() INLINE If( ::oTXT !=Nil, (::oTXT:End(), ::oTXT:= Nil),),;
                           Super:Destroy()


No se si puede ser que las últimas versiones de XHARBOUR o FWH no son compatibles con esa sitaxis.
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: EXCESS RELEASE OF FONT
Posted: Sun Dec 14, 2014 05:42 PM

Paz,

Mira a ver en el código del Listbox de Hernán si en algún lado se hace:

::oFont = oFont

Todas las asignaciones de fonts ahora tienen que hacerse con el método SetFont() y de ahí podría ser que se esté destruyendo más de la cuenta, cuando el control finalmente se destruye.

Si no lo encuentras, copia el fuente aqui y lo revisamos :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 563
Joined: Sun Oct 09, 2005 07:23 PM
Re: EXCESS RELEASE OF FONT
Posted: Sun Dec 14, 2014 06:54 PM

Arreglado Antonio.
Hemos eliminado de esa clase las dos líneas con ::oFont = oFont
y al final de los métodos New y Redefine hemos añadido la línea Self:SetFont(oFont)

Habrá que pensar en planificar algo de tiempo para pasar al xBrowse, pero siempre hay algo más urgente que hacer y se va quedando para atrás, pero será la solución definitiva.

Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: EXCESS RELEASE OF FONT
Posted: Sun Dec 14, 2014 10:15 PM

Me alegro de que se haya solucionado :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1074
Joined: Fri Oct 07, 2005 01:56 PM
Re: EXCESS RELEASE OF FONT
Posted: Mon Dec 15, 2014 08:42 PM

Estimados

en la clase de wbrowse de hernan, la variable ofont siempre es objeto, o no
de lo contratio Self:SetFont abria que verificar?

if oFont <> NIL
oFont:SetFont(oFont)
endif

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
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: EXCESS RELEASE OF FONT
Posted: Tue Dec 16, 2014 05:19 AM

Patricio,

Si. Ahora hay que tener cuidado de no hacer nunca:

oObjeto:oFont = oFont

siempre hay que usar

oObjeto:SetFont( oFont )

Aunque mientras escribo esto, se me acaba de ocurrir que podriamos usar sobrecarga de operadores y hacer que = ó := para un objeto TFont llamase por defecto a SetFont()...

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 563
Joined: Sun Oct 09, 2005 07:23 PM
Re: EXCESS RELEASE OF FONT
Posted: Sun Jan 11, 2015 07:16 PM

Antonio,
No se si es necesario hacer algo parecido para los objetos oPen a lo que se hace con los oFont.
¿Me lo puedes confirmar?. Es que aunque menos EXCESS RELEASE OF FONT que antes esporádicamente sale alguno.
He revisado todo el código, y aunque me puedo haber dejado algo por detrás, no se me ocurre por donde buscar.

Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: EXCESS RELEASE OF FONT
Posted: Sun Jan 11, 2015 09:22 PM

Estas usando alguna clase de terceros en la que no se este asignando el font usando el método SetFont() ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 563
Joined: Sun Oct 09, 2005 07:23 PM
Re: EXCESS RELEASE OF FONT
Posted: Mon Jan 12, 2015 07:17 AM

La única clase que uso fuera FWH y Barbour es el browse de Hernan.

Posts: 563
Joined: Sun Oct 09, 2005 07:23 PM
Re: EXCESS RELEASE OF FONT
Posted: Mon Jan 12, 2015 07:19 AM

Pero ya la he revisado y modificado para adaptarla también al setfont y a no hacer los oFont:end()

Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: EXCESS RELEASE OF FONT
Posted: Mon Jan 12, 2015 04:44 PM

Y se mantiene el error ó ya se ha corregido ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 563
Joined: Sun Oct 09, 2005 07:23 PM
Re: EXCESS RELEASE OF FONT
Posted: Mon Jan 12, 2015 09:08 PM

Se ha mantenido el error.
Pero como es más esporádico que antes tengo instalada la actualización de la aplicación en varios sitios a ver si pasados unos días (al menos una semana) de uso vuelve a producirse y comento el resultado.

Continue the discussion