DEFINE FONT vs TFont()
DEFINE FONT vs TFont()
Buenos dias,
estoy con mis pinitos, y acostumbrado a trabajar directamente con la Clase (son costumbres que se van adquiriendo) me encuentro con mi primer "error" o falta de saber el como en lugar de
DEFINE FONT oFont2 NAME 'Calibrí' SIZE 6, -13
puedo hacer
WITH OBJECT oFont2 := TFont:New()
:cFaceName := "Calibrí"
:nSize := 12
END
al compilar, me lanza el error
Error description: Error BASE/1003 Variable does not exist: TFONT
Supongo que me hace falta incluir el fuente de la clase "TFONT.prg" o alguna lib... pero, no hay una lib de FW que englobe esta o todas las clases???
Gracias.
Un Saludo,
Xevi.
estoy con mis pinitos, y acostumbrado a trabajar directamente con la Clase (son costumbres que se van adquiriendo) me encuentro con mi primer "error" o falta de saber el como en lugar de
DEFINE FONT oFont2 NAME 'Calibrí' SIZE 6, -13
puedo hacer
WITH OBJECT oFont2 := TFont:New()
:cFaceName := "Calibrí"
:nSize := 12
END
al compilar, me lanza el error
Error description: Error BASE/1003 Variable does not exist: TFONT
Supongo que me hace falta incluir el fuente de la clase "TFONT.prg" o alguna lib... pero, no hay una lib de FW que englobe esta o todas las clases???
Gracias.
Un Saludo,
Xevi.
Un Saludo,
Xevi.
Aprendiz de la vida!!!
Xevi.
Aprendiz de la vida!!!
Re: DEFINE FONT vs TFont()
Así TFont():New()
Re: DEFINE FONT vs TFont()
Perdón!!!
error de novato, novato!!!
No lo havia visto.
Otra cosa, porqué hay que definir ancho alto de una Font???
Yo quiero la fuente Calibrí tamaño 12, vaya, en cualquier desplegable de fuentes de windows, Word, Excel...
Y las propiedades de TFont, hay unas cuantas que hacen referencia a tamaño..
nHeight, nWidth, nInpHeight, nInpWidth, nWeight...
por mas que he probado combinaciones, creo no haber hallado con la que se "ajuste" a la real que obtengo en otras aplicaciones windows.
Parece como si "se pintara" la fuente, como sin definición, rara, no se corresponde con la "real"
Gracias.
Un Saludo,
Xevi.
error de novato, novato!!!
No lo havia visto.
Otra cosa, porqué hay que definir ancho alto de una Font???
Yo quiero la fuente Calibrí tamaño 12, vaya, en cualquier desplegable de fuentes de windows, Word, Excel...
Y las propiedades de TFont, hay unas cuantas que hacen referencia a tamaño..
nHeight, nWidth, nInpHeight, nInpWidth, nWeight...
por mas que he probado combinaciones, creo no haber hallado con la que se "ajuste" a la real que obtengo en otras aplicaciones windows.
Parece como si "se pintara" la fuente, como sin definición, rara, no se corresponde con la "real"
Gracias.
Un Saludo,
Xevi.
Un Saludo,
Xevi.
Aprendiz de la vida!!!
Xevi.
Aprendiz de la vida!!!
Re: DEFINE FONT vs TFont()
Usalo asi
Code: Select all
DEFINE FONT oFont2 NAME 'Calibrí' SIZE 0, -12
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: DEFINE FONT vs TFont()
Ya habia provado... con todo y con eso, la fuente "distorsiona" con la real, en FW es un pequeñin mas pequeña y menos altas
por ejemplo, las 'b', 'p' o 'A' se aprecia claramente la diferencia.
He probado muchas combinaciones,... nada, ya encontraré sinó una fuente que me vaya bien y me agrade mas.
Por cierto
oFont2 := TFont():New( "Calibrí", 0, -12,,,,,,,,,,,,,, )
WITH OBJECT oFont2 := TFont():New()
:cFaceName := "Calibrí"
:nWidth := 0
:nHeight := -12
END
deberian de dar el mismo resultado final!!!
Pues no, el segundo muestra en negrita.
Un Saludo,
Xevi.
por ejemplo, las 'b', 'p' o 'A' se aprecia claramente la diferencia.
He probado muchas combinaciones,... nada, ya encontraré sinó una fuente que me vaya bien y me agrade mas.
Por cierto
oFont2 := TFont():New( "Calibrí", 0, -12,,,,,,,,,,,,,, )
WITH OBJECT oFont2 := TFont():New()
:cFaceName := "Calibrí"
:nWidth := 0
:nHeight := -12
END
deberian de dar el mismo resultado final!!!
Pues no, el segundo muestra en negrita.
Un Saludo,
Xevi.
Un Saludo,
Xevi.
Aprendiz de la vida!!!
Xevi.
Aprendiz de la vida!!!
Re: DEFINE FONT vs TFont()
Un tema importante: control de pérdidas de recursos
Te pongo un ejemplo para que en tus programas puedas controlas si hay algún recurso: font, imagen, pen, etc que no haya sido liberado, que ahora al principio te aconsejo que lo incluyas en tus aplicaciones
Te pongo un ejemplo para que en tus programas puedas controlas si hay algún recurso: font, imagen, pen, etc que no haya sido liberado, que ahora al principio te aconsejo que lo incluyas en tus aplicaciones
Code: Select all
#include "Fivewin.ch"
Static oFont
Static oFontMenu
Static oWnd
//----------------------------------------------------------------------------//
function Main()
Local cFont := "Tahoma"
Local cFontH := -14
local cLog := cFileSetExt( ExeName(), "log" ) // Defines el nombre del fichero de error
local oMnu
FERASE( cLog )
SetResDebug( .T. ) // Activas el control de recursos
DEFINE FONT oFont NAME "TIMES NEW ROMAN" SIZE 0,-12
DEFINE FONT oFontMenu NAME cFont SIZE 0, cFontH WEIGHT 300
DEFINE WINDOW oWnd MENU ( oMnu := MakeMenu() ) TITLE FWVERSION
ACTIVATE WINDOW oWnd CENTERED
RELEASE FONT oFont
RELEASE FONT oFontMenu
FERASE( "checkres.txt" ) // Borras el fichero anterior
CHECKRES() // Generas el nuevo fichero
if File( "checkres.txt" )
waitrun("notepad checkres.txt") // lo visualizas si hay pérdida de recursos
endif
if file( clog )
winexec( "notepad.exe " + clog )
endif
return nil
//----------------------------------------------------------------------------//
function MakeMenu()
local oMenu, oMnu1, oMnu2
MENU oMenu
MENUITEM "One"
MENU oMnu1
MENUITEM "Sunday" CHECKED
MENUITEM SEPARATOR Upper( "Select" )
MENUITEM "Monday" + CRLF + "Other" BOLD RADIOCHECK 3, 2
MENUITEM "Tuesday" ACTION MsgInfo( "Hola" ) ITALIC
MENUITEM "WednesdaY"
SEPARATOR
MENUITEM "Thursday" FILE "..\bitmaps\full.bmp"
SEPARATOR
MENUITEM "Exit" ACTION WndMain():End() HSYSBITMAP 5
ENDMENU
MENUITEM "Two"
MENU oMnu2
MENUITEM "Sunday" HSYSBITMAP 9
SEPARATOR
MENUITEM "Monday" HSYSBITMAP 11
ENDMENU
ENDMENU
return oMenu
//----------------------------------------------------------------------------//
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: DEFINE FONT vs TFont()
Cristobal,
Gracias por el aporte.
Otra cosa que ahora detecto en tu ejemplo.
El menu, si se le pone la cláusula 2007 o 2013 o 2015 se vuelve lento al cambiar entre desplegable.
He visto que es por los iconos de recursos, si los comento, luego va como debe de ir.
Haz la prueba y verás!!!
function MakeMenu()
local oMenu, oMnu1, oMnu2
MENU oMenu 2015 //menu estilo 2007/2013/2015
MENUITEM "One"
MENU oMnu1
MENUITEM "Sunday" CHECKED
MENUITEM SEPARATOR Upper( "Select" )
MENUITEM "Monday" + CRLF + "Other" BOLD RADIOCHECK 3, 2
MENUITEM "Tuesday" ACTION MsgInfo( "Hola" ) ITALIC
MENUITEM "WednesdaY"
SEPARATOR
MENUITEM "Thursday" FILE "..\bitmaps\full.bmp"
SEPARATOR
MENUITEM "Exit" ACTION WndMain():End()// HSYSBITMAP 5 lo comento porque se vuelve 'pesado' en menu 2007/2013/2015
ENDMENU
MENUITEM "Two"
MENU oMnu2
MENUITEM "Sunday"// HSYSBITMAP 9 lo comento porque se vuelve 'pesado' en menu 2007/2013/2015
SEPARATOR
MENUITEM "Monday"// HSYSBITMAP 11 lo comento porque se vuelve 'pesado' en menu 2007/2013/2015
ENDMENU
ENDMENU
return oMenu
És un bug o fallo en FW ???
Un Saludo,
Xevi.
Gracias por el aporte.
Otra cosa que ahora detecto en tu ejemplo.
El menu, si se le pone la cláusula 2007 o 2013 o 2015 se vuelve lento al cambiar entre desplegable.
He visto que es por los iconos de recursos, si los comento, luego va como debe de ir.
Haz la prueba y verás!!!
function MakeMenu()
local oMenu, oMnu1, oMnu2
MENU oMenu 2015 //menu estilo 2007/2013/2015
MENUITEM "One"
MENU oMnu1
MENUITEM "Sunday" CHECKED
MENUITEM SEPARATOR Upper( "Select" )
MENUITEM "Monday" + CRLF + "Other" BOLD RADIOCHECK 3, 2
MENUITEM "Tuesday" ACTION MsgInfo( "Hola" ) ITALIC
MENUITEM "WednesdaY"
SEPARATOR
MENUITEM "Thursday" FILE "..\bitmaps\full.bmp"
SEPARATOR
MENUITEM "Exit" ACTION WndMain():End()// HSYSBITMAP 5 lo comento porque se vuelve 'pesado' en menu 2007/2013/2015
ENDMENU
MENUITEM "Two"
MENU oMnu2
MENUITEM "Sunday"// HSYSBITMAP 9 lo comento porque se vuelve 'pesado' en menu 2007/2013/2015
SEPARATOR
MENUITEM "Monday"// HSYSBITMAP 11 lo comento porque se vuelve 'pesado' en menu 2007/2013/2015
ENDMENU
ENDMENU
return oMenu
És un bug o fallo en FW ???
Un Saludo,
Xevi.
Un Saludo,
Xevi.
Aprendiz de la vida!!!
Xevi.
Aprendiz de la vida!!!
Re: DEFINE FONT vs TFont()
Xevi, es la primera noticia que tengo sobre el tema, y nadie lo ha comentado
Qué ordenador utilizas?
Qué ordenador utilizas?
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: DEFINE FONT vs TFont()
No se como insertar o adjuntar una imagen...
Windows 10 Enterprise 2016 LTSB
Intel core i5-6200U CPU 2.3GHz
8GB RAM
Sistema 64 bits
Windows 10 Enterprise 2016 LTSB
Intel core i5-6200U CPU 2.3GHz
8GB RAM
Sistema 64 bits
Un Saludo,
Xevi.
Aprendiz de la vida!!!
Xevi.
Aprendiz de la vida!!!
Re: DEFINE FONT vs TFont()
Hay un boton que pone Img, pero has de subirla a una web ( yo utilizo Postimage.org )Xevi wrote:No se como insertar o adjuntar una imagen...
Windows 10 Enterprise 2016 LTSB
Intel core i5-6200U CPU 2.3GHz
8GB RAM
Sistema 64 bits
Con ese ordenador no puedes tener ningun problema.
Tengo que verlo
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.
- nageswaragunupudi
- Posts: 8017
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Contact:
Re: DEFINE FONT vs TFont()
Code: Select all
WITH OBJECT oFont2: = TFont (): New ()
: cFaceName: = "Calibrí"
: nWidth: = 0
: nHeight: = -12
END
TFont():New() method should get all the parameters. Then only the New() method can create a font object depending on the parameters. When New() is called without any parameters, a default font object is created. Subsequently adding datas like cFaceName, nHeight are obviously useless.
We once again recommend using command syntax, eg. DEFINE FONT ...
Even if we make some improvements/changes to New() method in future, we do always keep compatibility at the command level.
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
Re: DEFINE FONT vs TFont()
Xevi,
En general, la creación de un objeto varía entre uno o dos pasos.
En el segundo caso el objecto precisa activarse (activate)
1 paso, TFont,
2 pasos, TDialog,
En general, la creación de un objeto varía entre uno o dos pasos.
En el segundo caso el objecto precisa activarse (activate)
1 paso, TFont,
Code: Select all
obj:= TFont():New(_PARAMETROS_)
2 pasos, TDialog,
Code: Select all
obj:= TDialog():New(_PARAMETROS_)
WITH OBJECT obj
:nWidth:= 400
END
obj:Activate()
Re: DEFINE FONT vs TFont()
Bien... hasta hí, entiendo, y correjiré la forma en escribir código en FW.
Manera "distinta" de tratar a las Classes/objetos de FW. Entendido.
Ahora bien, mi inquietud, es la que por mas que haga
DEFINE FONT oFont1 NAME "Calibri" SIZE 0, -12
esa font resultante no se corresponde PARA NADA a la que se obtiene en una aplicación windows que la utilice, vease Word o Excel o la otra aplicación que tengo desarrollada en otro entorno xBase.
he provado a cambiar SIZE por 0,-14 (la que más se acerca), 8,-12 / 8,-14...
pero los trazos de la letra no se corresponden. Con FW los palos de las 'p' o 'b' son cortos, la 'A' es mas chata, la letra en si no es tan 'redondeada' como deberia.
Es una inquietud que tengo... y viene de la primera vez que probé FW, que los trazos de letra no estan bien trazados por decirlo de una manera, la definicion es mas 'basta'. Es como si FW utilizara un 'pinzel' y dibujara la letra en lugar de coger la fuente en si.
Se que FW me abre muchas más opciones, pero en los detalles pequeños el resultado final importa... y uno es el estético.
Estoy buscando una fuente que me atraiga y que haga que mis aplicaciones me 'entren por la vista' si no puede ser con esa.
Un Saludo,
Xevi.
Manera "distinta" de tratar a las Classes/objetos de FW. Entendido.
Ahora bien, mi inquietud, es la que por mas que haga
DEFINE FONT oFont1 NAME "Calibri" SIZE 0, -12
esa font resultante no se corresponde PARA NADA a la que se obtiene en una aplicación windows que la utilice, vease Word o Excel o la otra aplicación que tengo desarrollada en otro entorno xBase.
he provado a cambiar SIZE por 0,-14 (la que más se acerca), 8,-12 / 8,-14...
pero los trazos de la letra no se corresponden. Con FW los palos de las 'p' o 'b' son cortos, la 'A' es mas chata, la letra en si no es tan 'redondeada' como deberia.
Es una inquietud que tengo... y viene de la primera vez que probé FW, que los trazos de letra no estan bien trazados por decirlo de una manera, la definicion es mas 'basta'. Es como si FW utilizara un 'pinzel' y dibujara la letra en lugar de coger la fuente en si.
Se que FW me abre muchas más opciones, pero en los detalles pequeños el resultado final importa... y uno es el estético.
Estoy buscando una fuente que me atraiga y que haga que mis aplicaciones me 'entren por la vista' si no puede ser con esa.
Un Saludo,
Xevi.
Un Saludo,
Xevi.
Aprendiz de la vida!!!
Xevi.
Aprendiz de la vida!!!
Re: DEFINE FONT vs TFont()
Code: Select all
C:\FWH1701\samples
TESTFON1.PRG
testfon2.prg
testfon3.prg
testfont.prg
Saludos.
João Santos - São Paulo - Brasil
Re: DEFINE FONT vs TFont()
Bien... testfon2.prg me sirve para mostrar el comportamiento que intento explicar.
Hay un boton que se puede seleccionar la fuente/tamaño/tipo... Si selecciono Calibri Normal 12, que es el tipo de letra que intento usar en mi aplicación, canvia el oSay correctamente y SI muestra el texto en la fuente seleccionada CORRECTO!!!
PERO...
He añadido un par de lineas al test.
podeis ver el prg en cuestion...
una variable local oFontCalibri12
tal como entiendo que deberia definir la fuente y asignarla a un say
DEFINE FONT oFontCalibri12 NAME "Calibri" SIZE 0, -12
@ 11.5,10 SAY "Is this bold... Font Calibri12 ?" FONT oFontCalibri12
pues bien, de entrada, al ejecutar el programa, no se aprecia esa fuente en el nuevo say, y si pulsamos para cambiar el fuente, cambia el fuente correctamente del primer say y se puede comprovar/ver la diferencia entre una fuente de un say y el otro say.
Así que,... cómo se define correctamente una fuente para que pille de primera al mostrar el SAY ??? (o Get, o...)
Un Saludo,
Xevi.
Hay un boton que se puede seleccionar la fuente/tamaño/tipo... Si selecciono Calibri Normal 12, que es el tipo de letra que intento usar en mi aplicación, canvia el oSay correctamente y SI muestra el texto en la fuente seleccionada CORRECTO!!!
PERO...
He añadido un par de lineas al test.
podeis ver el prg en cuestion...
Code: Select all
// Some tests with fonts capabilities
#include "FiveWin.ch"
Function Main()
LOCAL oWnd,oSay
Local oFontCalibri12
DEFINE WINDOW oWnd;
FROM 1,5 TO 20,65;
TITLE "Test font. oSay:oFont:lBold is always .t.!"
DEFINE FONT oFontCalibri12 NAME "Calibri" SIZE 0, -12
@ 11.5,10 SAY "Is this bold... Font Calibri12 ?" FONT oFontCalibri12
@ 10,10 SAY oSay;
PROMPT "Is this bold now?" OF oWnd
@ 2,10 BUTTON "Change Font";
SIZE 100,50;
ACTION oSay:SelFont() OF oWnd
@ 2,40 BUTTON "Bold?";
SIZE 100,50;
ACTION MsgInfo(If(oSay:oFont:lBold,"Yes, oSay:oFont:lBold says it's BOLD!","NOT BOLD, OK?")) OF oWnd
ACTIVATE WINDOW oWnd
RETU NIL
tal como entiendo que deberia definir la fuente y asignarla a un say
DEFINE FONT oFontCalibri12 NAME "Calibri" SIZE 0, -12
@ 11.5,10 SAY "Is this bold... Font Calibri12 ?" FONT oFontCalibri12
pues bien, de entrada, al ejecutar el programa, no se aprecia esa fuente en el nuevo say, y si pulsamos para cambiar el fuente, cambia el fuente correctamente del primer say y se puede comprovar/ver la diferencia entre una fuente de un say y el otro say.
Así que,... cómo se define correctamente una fuente para que pille de primera al mostrar el SAY ??? (o Get, o...)
Un Saludo,
Xevi.
Un Saludo,
Xevi.
Aprendiz de la vida!!!
Xevi.
Aprendiz de la vida!!!