EXCESS RELEASE OF FONT
EXCESS RELEASE OF FONT
En un log del programa aparece esto :
19-01-2015 17:06:08: EXCESS RELEASE OF FONT Verdana[ hFont : 0] ( nCount : 0 )
<-TFONT:END(246) <-TCONTROL:DESTROY(2298) <-TGET:DESTROY(766) <-TWINDOW:HANDLEEVENT(0) <-TCONTROL:HANDLEEVENT(1733) <-TGET:HANDLEEVENT(575) <-_FWH(3464) <-SENDMESSAGE(0) <-(b)TWINDOW(573)
------------------------------------------------------------
con la ultima versión de fwh ( 15.01 ) . ¿ Es un problema de la clase Tcontrol ? . Gracias.
19-01-2015 17:06:08: EXCESS RELEASE OF FONT Verdana[ hFont : 0] ( nCount : 0 )
<-TFONT:END(246) <-TCONTROL:DESTROY(2298) <-TGET:DESTROY(766) <-TWINDOW:HANDLEEVENT(0) <-TCONTROL:HANDLEEVENT(1733) <-TGET:HANDLEEVENT(575) <-_FWH(3464) <-SENDMESSAGE(0) <-(b)TWINDOW(573)
------------------------------------------------------------
con la ultima versión de fwh ( 15.01 ) . ¿ Es un problema de la clase Tcontrol ? . Gracias.
Re: EXCESS RELEASE OF FONT
Manuel, como se ha comentado en el foro este tipo de asignaciones suelen producir esta situacion
local oFontDlg:=oFont
local oFontDlg:=oFont
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Re: EXCESS RELEASE OF FONT
Pues no tengo ninguna asignacion similar en el programa .
Ademas, por si sirve de guia para encontrar el problema , al principio del programa tengo un dialogo para pass que da el error nada mas cerrarlo . si quito al final de este dialogo el ofont:end() el error deja de salir en ese punto ...
Ademas, por si sirve de guia para encontrar el problema , al principio del programa tengo un dialogo para pass que da el error nada mas cerrarlo . si quito al final de este dialogo el ofont:end() el error deja de salir en ese punto ...
Re: EXCESS RELEASE OF FONT
João Santos - São Paulo - Brasil
Re: EXCESS RELEASE OF FONT
Entonces debe ser el problema que comentas en tu primer post, voy a mirar a ver si encuentro algomastintin wrote:Pues no tengo ninguna asignacion similar en el programa .
Ademas, por si sirve de guia para encontrar el problema , al principio del programa tengo un dialogo para pass que da el error nada mas cerrarlo . si quito al final de este dialogo el ofont:end() el error deja de salir en ese punto ...
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Re: EXCESS RELEASE OF FONT
entonces supongamos este codigo ... como se codifica ahora ...
Supongamos un nuevo control...
oNuevo: new( ofontText, ofontTitulo )
IF oFontText == NIL
DEFINE FONT oFontText NAME "DEFAULT_GUI_FONT" SIZE 0,-12
ENDIF
IF oFontTitulo == NIL
DEFINE FONT oFontTitulo NAME "DEFAULT_GUI_FONT" SIZE 0,-16
ENDIF
::oFontTexto:= oFontTexto
::oFontTitulo:= oFontTitulo
......
Tenemos que tener en cuenta que si :
::oFontTexto:setfont(ofontTexto)
esto dará error ya que ::ofonttexto de momento no es nada y no tiene por tanto el methodo setfont()
Supongamos un nuevo control...
oNuevo: new( ofontText, ofontTitulo )
IF oFontText == NIL
DEFINE FONT oFontText NAME "DEFAULT_GUI_FONT" SIZE 0,-12
ENDIF
IF oFontTitulo == NIL
DEFINE FONT oFontTitulo NAME "DEFAULT_GUI_FONT" SIZE 0,-16
ENDIF
::oFontTexto:= oFontTexto
::oFontTitulo:= oFontTitulo
......
Tenemos que tener en cuenta que si :
::oFontTexto:setfont(ofontTexto)
esto dará error ya que ::ofonttexto de momento no es nada y no tiene por tanto el methodo setfont()
Re: EXCESS RELEASE OF FONT
No se si te he entendido, pero yo lo haria asimastintin wrote:entonces supongamos este codigo ... como se codifica ahora ...
Supongamos un nuevo control...
oNuevo: new( ofontText, ofontTitulo )
IF oFontText == NIL
DEFINE FONT oFontText NAME "DEFAULT_GUI_FONT" SIZE 0,-12
ENDIF
IF oFontTitulo == NIL
DEFINE FONT oFontTitulo NAME "DEFAULT_GUI_FONT" SIZE 0,-16
ENDIF
::oFontTexto:= oFontTexto
::oFontTitulo:= oFontTitulo
......
Tenemos que tener en cuenta que si :
::oFontTexto:setfont(ofontTexto)
esto dará error ya que ::ofonttexto de momento no es nada y no tiene por tanto el methodo setfont()
Code: Select all
// En el metodo New
.../...
IF oFontText == NIL
DEFINE FONT ::oFontText NAME "DEFAULT_GUI_FONT" SIZE 0,-12
ENDIF
IF oFontTitulo == NIL
DEFINE FONT ::oFontTitulo NAME "DEFAULT_GUI_FONT" SIZE 0,-16
ENDIF
.../...
Code: Select all
// Si no es en el metodo New
.../...
IF oFontText == NIL
if !empty( ::oFontText )
::oFontText:End()
endif
DEFINE FONT ::oFontText NAME "DEFAULT_GUI_FONT" SIZE 0,-12
ENDIF
IF oFontTitulo == NIL
if !empty( ::oFontTitulo )
::oFontTitulo:End()
endif
DEFINE FONT ::oFontTitulo NAME "DEFAULT_GUI_FONT" SIZE 0,-16
ENDIF
.../...
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Re: EXCESS RELEASE OF FONT
Bien Cristobal , pero y si se ha asignado un font en el new y oFontText != nil ?
Re: EXCESS RELEASE OF FONT
Manuel, mira a ver
Code: Select all
// Si no es en el metodo New
.../...
IF oFontText == NIL
if !empty( ::oFontText )
::oFontText:End()
endif
DEFINE FONT ::oFontText NAME "DEFAULT_GUI_FONT" SIZE 0,-12
ELSE
if !empty( ::oFontText )
::oFontText:End()
endif
::SetFont( oFontText )
ENDIF
IF oFontTitulo == NIL
if !empty( ::oFontTitulo )
::oFontTitulo:End()
endif
DEFINE FONT ::oFontTitulo NAME "DEFAULT_GUI_FONT" SIZE 0,-16
ELSE
if !empty( ::oFontTitulo )
::oFontTitulo:End()
endif
::oTitulo:SetFont( oFontTitulo ) // Suponemos que aqui hay otro objeto
ENDIF
.../...
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Re: EXCESS RELEASE OF FONT
si, asi si pero no del todo ...
en el new()
DEFINE FONT ::oFontTitulo NAME "DEFAULT_GUI_FONT" SIZE 0,-16 // lo iniciamos y luego
if ofonttitulo != nil
::ofonttitulo:setfont( ofonttitulo) // si viene pasado desde new lo asignamos .
endif
Ya encontré uno de _ ... datepicket en el methodo redefine , no esta completado como si lo está en el metodo new .... se tiene que hacer un fix de ello .
en el new()
DEFINE FONT ::oFontTitulo NAME "DEFAULT_GUI_FONT" SIZE 0,-16 // lo iniciamos y luego
if ofonttitulo != nil
::ofonttitulo:setfont( ofonttitulo) // si viene pasado desde new lo asignamos .
endif
Ya encontré uno de _ ... datepicket en el methodo redefine , no esta completado como si lo está en el metodo new .... se tiene que hacer un fix de ello .
Re: EXCESS RELEASE OF FONT
En tu ejemplo eso es lo que no entiendo,
Como puede ser el objeto oFont, la data ::oFontTitulo, ya que este objeto no tiene ese metodo
Por otra parte, en este tema, llegamos al "tan traido y llevado" encapsulamiento, y no asignar valores directamente a las datas de los objetos que creamos, ni usarlas , sino que deben existir unos metodos SETGET de cada DATA al crear la CLASE para este fin y, en el caso de que las DATAs sean objetos, como es el caso, realice el :End() del objeto antes de realizar la nueva asignacion
Pero bueno, una cosa es "predicar y otra muy distinta, dar trigo" y todos buscamos la ley "del minimo esfuerzo", yo el primero, claro
Si me atrevo a escribir lo anterior hoy es porque en relacion a otro tema que no tiene nada que ver con este tema el compañero Felix me ha remitido a un BLog de Biel (que ya conocia) y en un articulo habla tambien de este tema
http://bielsys.blogspot.com.es/search?u ... -results=1
Como puede ser el objeto oFont, la data ::oFontTitulo, ya que este objeto no tiene ese metodo
Por otra parte, en este tema, llegamos al "tan traido y llevado" encapsulamiento, y no asignar valores directamente a las datas de los objetos que creamos, ni usarlas , sino que deben existir unos metodos SETGET de cada DATA al crear la CLASE para este fin y, en el caso de que las DATAs sean objetos, como es el caso, realice el :End() del objeto antes de realizar la nueva asignacion
Pero bueno, una cosa es "predicar y otra muy distinta, dar trigo" y todos buscamos la ley "del minimo esfuerzo", yo el primero, claro
Si me atrevo a escribir lo anterior hoy es porque en relacion a otro tema que no tiene nada que ver con este tema el compañero Felix me ha remitido a un BLog de Biel (que ya conocia) y en un articulo habla tambien de este tema
http://bielsys.blogspot.com.es/search?u ... -results=1
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Re: EXCESS RELEASE OF FONT
Pues tienes razón , el objeto font no tiene setfont , pues tendré que repensarlo ... ¿ como lo hacemos ?. Lo que si es claro es que datepick tiene un problema
Re: EXCESS RELEASE OF FONT
Dime en que linea y lo miro
Quiero decir, dime en qué tienes el problema
Quiero decir, dime en qué tienes el problema
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Re: EXCESS RELEASE OF FONT
Manuel, tanto en el metodo New como en el Redefine se ha "comentado" la linea
y se ha puesto en el metodo New
Pero, ojo en el Metodo Redefine se ha comentado la linea pero no se ha asignado el font
Sin saber exactamente tu problema, quizas en ambos metodos, deberia ser:
Code: Select all
// ::oFont = oFont
Code: Select all
::SetFont( oFont )
Sin saber exactamente tu problema, quizas en ambos metodos, deberia ser:
Code: Select all
if oFont = nil
::SetFont( oWnd:oFont )
else
::SetFont( oFont )
endif
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Re: EXCESS RELEASE OF FONT
Tambien e quitado la asigancion inicial en el new ... ofont := oWnd:ofont .
Sigue existiendo otro problema por algún lado ... con este código da error si descomento el ultimo get y sino no ...¿?
Sigue existiendo otro problema por algún lado ... con este código da error si descomento el ultimo get y sino no ...¿?
Code: Select all
DEFINE Font oFont name "Verdana" size 0,-12
DEFINE font oFontCor name "Verdana" size 0,-13 bold
DEFINE Font oFont2 name "Verdana" size 0,-14
DEFINE DIALOG oDlg RESOURCE "cab_cli" HELPID 2 FONT ofont
REDEFINE BITMAP oBitmap1 ID 601 RESOURCE hVar["vcBmp"] OF oDlg pixel NOBORDER TRANSPARENT
REDEFINE GET hObj["vFACTURA"] VAR aVar[vFACTURA] ID 102 OF oDlg ;
COLOR nRgb(0,0,0),nRgb(255,250,200);
WHEN (Esalta) FONT oFontCor
hObj["vFACTURA"]:lDiscolors:= EsAlta
REDEFINE GET aObj[vCLIENTE] VAR aVar[vCLIENTE] ID IDCLIENTE OF oDlg PICTURE "999999";
BITMAP "lupa5" ;
ACTION .t. ;
VALID .t. ;
FONT oFont2 ;
UPDATE
aObj[vCLIENTE]:bKeyDown := { |nKey | IIF( nKey == VK_F2,(aObj[vCLIENTE]:oBtn:click(), 0 ),) }
REDEFINE GET aObj[vRAZ] VAR aVAr[vRAZ] ID IDRAZ OF oDlg PICTURE "@!" UPDATE
// REDEFINE GET aObj[vNOMCLI] VAR aVAr[vNOMCLI] ID IDNOMCLI OF oDlg PICTURE "@!" FONT ofont2 UPDATE
REDEFINE BUTTON ID 119 OF oDlg ACTION (Grabar:=.F., oDlg:End()) FONT ofont2
ACTIVATE DIALOG oDlg CENTERED