Page 1 of 1
quiero definir fuentes que esten disponible en toda la app
Posted: Sat Nov 06, 2021 12:38 pm
by goosfancito
ola.
tengo varias clases, cada una hace su cometido en la app,
y todas tienen browser.
quier definir "algo" pienso en una clase pero no me estaria funcionando, para definir algunas fuentes y que pueda
utilizarla desde las diferentes clases que tengo.
he hecho esto:
Code: Select all | Expand
CLASS TFuentes
DATA oFontEncabezado
DATA oFontCelda
METHOD new() CONSTRUCTOR
ENDCLASS
//------------------------------------------------------------------------------
METHOD new() CLASS TFuentes
DEFINE FONT ::oFontEncabezado NAME "Tahoma" SIZE 0, - 16 bold
DEFINE FONT ::oFontCelda NAME "Tahoma" SIZE 0, - 16
RETURN ( Self )
//------------------------------------------------------------------------------
pero si la llamo como ser desde mi clase que quiero utilizarla me dice que no la encuentra
Code: Select all | Expand
CLASS TApp FROM TFuentes
.....
endclass
....
with object ::oBrw
WITH OBJECT :aCols[ 1 ]
:cHeader := "Id"
:nWidth := 80
:nHeadStrAlign := AL_CENTER
:oHeaderFont := ::oFontEncabezado
:oDataFont := ::oFontCelda
END WITH
cual es el problema? que la fuente no se muestra y si hago esto:
no me devuelve nda. ni si quiera una referencia al afuente
Re: quiero definir fuentes que esten disponible en toda la app
Posted: Sat Nov 06, 2021 1:40 pm
by TecniSoftware
Hola
Me parece que la clase TApp no debería definirse como FROM TFuentes
Yo haría asi:
Code: Select all | Expand
CLASS TApp
DATA oFuentes
.....
ENDCLASS
METHOD New() CLASS TApp
::oFuentes := TFuentes():New()
....
// Para el browse:
with object ::oBrw
WITH OBJECT :aCols[ 1 ]
:cHeader := "Id"
:nWidth := 80
:nHeadStrAlign := AL_CENTER
:oHeaderFont := ::oFuentes:oFontEncabezado
:oDataFont := ::oFuentes:oFontCelda
END WITH
Saludos
Re: quiero definir fuentes que esten disponible en toda la app
Posted: Sat Nov 06, 2021 2:02 pm
by karinha
Code: Select all | Expand
#Include "FiveWin.Ch"
//----CLasse
CLASS TPublic
METHOD New() CONSTRUCTOR
ENDCLASS
METHOD New() CLASS TPublic
Public TFecha, oFont, oFnt, oFont1, oFont2, oFont3
TFecha := Date()
DEFINE FONT oFont NAME "Ms Sans Serif" SIZE 00, -14 BOLD
DEFINE FONT oFnt NAME "Ms Sans Serif" SIZE 00, -12 BOLD
DEFINE FONT oFont1 NAME "Calibri" SIZE 0, -14
DEFINE FONT oFont2 NAME "Segoe UI Light" SIZE 0, -18
DEFINE FONT oFont3 NAME "Segoe UI" SIZE 0, -26
RETURN Self
//-------Seus PRGs - Para Pegar Variaveis publicas
// Datos := TPublic():New()
// ? TFecha
Regards, saludos.
Re: quiero definir fuentes que esten disponible en toda la app
Posted: Sat Nov 06, 2021 2:58 pm
by goosfancito
TecniSoftware wrote:Hola
Me parece que la clase TApp no debería definirse como FROM TFuentes
Yo haría asi:
Code: Select all | Expand
CLASS TApp
DATA oFuentes
.....
ENDCLASS
METHOD New() CLASS TApp
::oFuentes := TFuentes():New()
....
// Para el browse:
with object ::oBrw
WITH OBJECT :aCols[ 1 ]
:cHeader := "Id"
:nWidth := 80
:nHeadStrAlign := AL_CENTER
:oHeaderFont := ::oFuentes:oFontEncabezado
:oDataFont := ::oFuentes:oFontCelda
END WITH
Saludos
Consulto, pero al hacerl FROM... estoy heredando los metodos y datos de TFuentes... o no?
Re: quiero definir fuentes que esten disponible en toda la app
Posted: Sat Nov 06, 2021 2:59 pm
by goosfancito
karinha wrote:Code: Select all | Expand
#Include "FiveWin.Ch"
//----CLasse
CLASS TPublic
METHOD New() CONSTRUCTOR
ENDCLASS
METHOD New() CLASS TPublic
Public TFecha, oFont, oFnt, oFont1, oFont2, oFont3
TFecha := Date()
DEFINE FONT oFont NAME "Ms Sans Serif" SIZE 00, -14 BOLD
DEFINE FONT oFnt NAME "Ms Sans Serif" SIZE 00, -12 BOLD
DEFINE FONT oFont1 NAME "Calibri" SIZE 0, -14
DEFINE FONT oFont2 NAME "Segoe UI Light" SIZE 0, -18
DEFINE FONT oFont3 NAME "Segoe UI" SIZE 0, -26
RETURN Self
//-------Seus PRGs - Para Pegar Variaveis publicas
// Datos := TPublic():New()
// ? TFecha
Regards, saludos.
hola pero si defino como DATA en vez de "public" se estaria heredando tambien las data... o no es lo mismo que en "C"?
Re: quiero definir fuentes que esten disponible en toda la app
Posted: Mon Nov 08, 2021 3:59 pm
by armando.lagunas
Yo lo utilizo asi:
Code: Select all | Expand
class tapp
DATA aWFont INIT {} //-- Array de Fonts
...
...
...
endclass
en tu programa inicial
Code: Select all | Expand
#Include "FiveWin.Ch"
..
MEMVAR oApp
function main()
oApp := TApp()
..
..
IniciarFonts()
..
..
..
AEval( oApp:aWFont, {|e| IIF(e!=Nil, e:End(), Nil )} )
return .t.
Function IniciarFonts()
oApp:aWFont := ARRAY( 5 )
DEFINE FONT oApp:aWFont[1] NAME "Segoe WP" SIZE 0, -17 // OK
DEFINE FONT oApp:aWFont[2] NAME "Segoe WP" SIZE 0, -27 // OK
DEFINE FONT oApp:aWFont[3] NAME "Sagoe UI Light" SIZE 0, -14 // OK
DEFINE FONT oApp:aWFont[4] NAME "Segoe UI Light" SIZE 0, -32 // Titulos Gigantes en cualquier Dialogo
DEFINE FONT oApp:aWFont[5] NAME "Segoe UI Light" SIZE 0, -20 // OK
return nil
y en los programas individuales se utiliza como siempre
Code: Select all | Expand
...
...
REDEFINE SAY ID -16 OF oDlg PROMPT "N° Contrato" FONT oApp:aWFont[3]
...
...
Saludos
Re: quiero definir fuentes que esten disponible en toda la app
Posted: Mon Nov 08, 2021 7:32 pm
by goosfancito
Hola
Pude resolverlo de esta forma: no entiendo aun porque no se inicializan los objetos automaticamente...
Code: Select all | Expand
#Include "FiveWin.Ch"
CLASS TFuentes
data oFont1
data oFont2
METHOD New() CONSTRUCTOR
ENDCLASS
METHOD New() CLASS TFuentes
DEFINE FONT ::oFont1 NAME "Ms Sans Serif" SIZE 00, -14 BOLD
DEFINE FONT ::oFont2 NAME "Ms Sans Serif" SIZE 00, -14
RETURN (Self)
------------------------------------------------
//despues del FROM la clase que primero tiene que ir es TFuentes, sino no funciona (no lo entiendo)
class TAPP FROM TFuentes, T....
.....
method new() constructor
...
end class
method new() class TApp
...
...
::Super:new() // con esto inicializa TFuentes (no entiendo porque no fuiona si la primer clase despues del FROM no es TFuentes
...
return (self)