Page 1 of 1

font xBrowse desde recurso

Posted: Tue Jul 02, 2013 4:46 pm
by Biel EA6DD
Al crear un dialogo desde recursos, por defecto se usa el fuente definido en el dialogo al diseñarlo en el editor de recuros (normal).

Si dicho dialogo incorpora un xBrowse, al crearse el xbrowse hace que se cambie el font de todos los controles del dialogo por otro distinto al definido en el diálogo.

Por lo que veo, esto es debido que en el momento de crear el xBrowse, el dialogo todavia no esta incializado y no tiene font definido.
En el método new de xBrose se ejecuta el siguiente código

Code: Select all | Expand


   if oWnd:oFont == nil
         oWnd:GetFont()
      endif
      ::oFont := oWnd:oFont

que hace que varie el font de todo el dialogo.
Se os ocurre alguna alternativa sin necesidad de añadir un oDlg:SetFont, ni cambiar xBrowse.

Re: font xBrowse desde recurso

Posted: Fri Aug 23, 2013 7:50 am
by Biel EA6DD
+1

Re: font xBrowse desde recurso

Posted: Fri Aug 23, 2013 7:59 am
by cnavarro
Hola
Creas el XBrowse entre el DEFINE DIALOG y el ACTIVATE o en el ON INIT del ACTIVATE?

Re: font xBrowse desde recurso

Posted: Fri Aug 23, 2013 9:52 am
by Biel EA6DD
cnavarro wrote:Hola
Creas el XBrowse entre el DEFINE DIALOG y el ACTIVATE o en el ON INIT del ACTIVATE?

Hola Cristobal,
Si creo el xBrowse entre DEFINE y ACTIVATE, como el resto de controles.

Code: Select all | Expand


   DEFINE DIALOG oDlg RESOURCE "TPV"
   ...
   REDEFINE SAY PROMPT DToC(Date()) ID 403 OF oDlg
   ...
   oBrw := txBrowse():New( oDlg )
   WITH OBJECT oBrw
      :cAlias:='det'
      ...
      :SetRdd()
      :CreateFromResource(301)
   END
   ACTIVATE DIALOG oDlg CENTERED ON INIT ( IniBtn( ) ) VALID (Salir())
 

Re: font xBrowse desde recurso

Posted: Fri Aug 23, 2013 2:34 pm
by albeiroval
Biel,

Yo lo hago asi :

Code: Select all | Expand


  DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-12
 
  DEFINE DIALOG oDlg RESOURCE "Calendario" TITLE cTitulo ICON oApp:aRes[ ICON_FINGER ] FONT oFont

  REDEFINE SAY ....... OF oDlg

  REDEFINE GET ..... OF oDlg

  REDEFINE XBROWSE ..... OF oDlg

  REDEFINE BTNBMP .... OF oDlg

  ACTIVATE DIALOG oDlg ..

 


Como vez cuando le asigno el font al dialogo al crearlo me hereda el mismo font para todos los demas controles que
pertenescan a el dialogo.

Espero te sirva.

Saludos,

Albeiro,

Re: font xBrowse desde recurso

Posted: Fri Aug 23, 2013 4:07 pm
by Biel EA6DD
Cierto, si especificas el font en el momento de definir el dialogo, funciona correctamente, al igual que si ejecutas oDlg:SetFont(). Debido a que oDlg:oFont ya no es nulo, y xBrowse no tiene neceisdad de ejecutar GetFont().

El tema es que yo no defino el font en el prg, simplemente espero que se utilice el que está definido en el fichero de recursos.

Entiendo que la función DialogBox()( que se ejeucta al realizase el activate del dialogo), lee el recurso y recupera el font definido en él, siempre que oFont sea NIL, y eso deja de ser cierto si antes hemos creado un xBrowse, puesto que ha necistado del font, y al ejecutar GetFont asigna el font al dialogo.

O algo así, realemente el que sabe exactamente lo que hace es Antonio.

Puedo sobrevivir con ese comportamiento, solo era por si habia alguna forma sin definir el font, para que todos los objetos contenidos en el dialogo usasen el font especificado en el editor de recursos.

Re: font xBrowse desde recurso

Posted: Fri Aug 23, 2013 4:44 pm
by albeiroval
Biel,

Tienes razon, no lo habia probado definiendo el font desde recursos, Ya es un tema para Antonio o el Sr. Rao.

Saludos,