Page 1 of 1

The real Hight-Information of a selected Font ?

Posted: Sat Feb 23, 2008 5:50 pm
by ukoenig
Hello from Germany

I'm still struggling with the INI-Handling for Fonts.
I got it working like :

[Main]
DATESET=5
WRITESET=1
[Paint]
HEADPIC=1
COLTEXT=2
LOGO1=LOGO1
BRUSH1=9
COLOR1=16711680
LOGO2=LGO2
BRUSH2=9
COLOR2=16711680
POSTOP=10
POSLEFT=70
[SysFonts]
FONT1=Arial 10 .F. .F.
FONT2=Arial 12 .F. .F.
FONT3=Arial 14 .F. .F.
[BarFonts]
FONT4=Arial 21 .F. .F.
FONT5=Arial 27 .F. .F.
FONT6=Arial 29 .F. .F.


REDEFINE BUTTON oBtn11 ID 835 OF oDlg5 ;
ACTION ( oFont0 := ChooseFont(), ;
oFont13 := BUILDFONT(oFont0), ;
// oFont13 created with TFont():New(oFont0)
aTYPE4[1] := oFont13:cFacename, ;
aTYPE4[2] := oFont13:nHeight, ;
aTYPE4[3] := oFont13:lBold, ;
aTYPE4[4] := oFont13:lItalic, ;
oSay4:SetFont( oFont13 ), oSAY4:Refresh() )

REDEFINE SAY oSAY4 VAR e_FTYPE4 ID 830 FONT oFont13 OF oDlg5

the values aTYPE4[1] ..... aTYPE4[4], I write as a string to the INI-File

Reading from the INI-File, I saved the parts of the font-string
back to the values : aType4[1] ........ aType4[4]

With the Var's I create the Font :

oFont13 := TFont():New( aTYPE4[1], , aTYPE4[2], ;
.f.,aTYPE4[3], , , ,aTYPE4[4] )
I used :

TFont():New( aFont[ LF_FACENAME ],;
,;
aFont[ LF_HEIGHT ],; // Returns Values like 2312111115
.f.,;
!( aFont[ LF_WEIGHT ] == 400) ,;
aFont[ LF_ESCAPEMENT ],;
aFont[ LF_ORIENTATION ],;
aFont[ LF_WEIGHT ],;
aFont[ LF_ITALIC ],;
aFont[ LF_UNDERLINE ],;
aFont[ LF_STRIKEOUT ],;
aFont[ LF_CHARSET ],;
aFont[ LF_OUTPRECISION ],;
aFont[ LF_CLIPPRECISION ],;
aFont[ LF_QUALITY ],;
,;
aFont[ LF_PITCHANDFAMILY ] )

LF_HEIGHT returns Values, i cannot use
so i used oFont13:nHeight

It works, but the values are wrong.
I looked at the class tFont.
It seems, nHeight is calculated.

As a sample :
I select Font-Heigh = 12 I get value 10

The result-value is always smaler, as selected

Is there another way to get the real Hight-Value of a Font ?
The values for Face, Bold, Italic are OK.

Regards
Uwe

Re: The real Hight-Information of a selected Font ?

Posted: Sat Feb 23, 2008 6:02 pm
by Richard Chidiak
Uwe

Try

INT(aFONT[LF_HEIGHT] * 10 / 13 * -1)

HTH

Richard

Real Font-Hight

Posted: Sat Feb 23, 2008 7:21 pm
by ukoenig
Richard, Thank you very much

With the calculation, i getting the real font-height.
For a working sample, see Infofar Version 8.2 d => 24.02.

Regards
Uwe