mirror of
https://github.com/QB64Official/qb64.git
synced 2024-09-28 11:17:47 +00:00
81 lines
3.4 KiB
Text
81 lines
3.4 KiB
Text
{{DISPLAYTITLE:_FONT}}
|
|
The [[_FONT]] statement sets the current [[_LOADFONT]] function font handle to be used by [[PRINT]].
|
|
|
|
|
|
{{PageSyntax}}
|
|
: [[_FONT]] {{Parameter|fontHandle&}}[, {{Parameter|imageHandle&}}]
|
|
|
|
|
|
{{PageParameters}}
|
|
* {{Parameter|fontHandle&}} is the handle retrieved from [[_LOADFONT]] function, the [[_FONT (function)|_FONT]] function, or a predefined handle.
|
|
* If the image handle is omitted the current image [[_DEST]]ination is used. Zero can designate the current program [[SCREEN]].
|
|
|
|
|
|
{{PageDescription}}
|
|
* Predefined '''QB64''' font handle numbers can be used before freeing a font:
|
|
**'''_FONT 8 ''' - default font for [[SCREEN (statement)|SCREEN]] 1, 2, 7, 8 or 13
|
|
**'''_FONT 14''' - default font for [[SCREEN (statement)|SCREEN]] 9 or 10
|
|
**'''_FONT 16''' - default font for [[SCREEN (statement)|SCREEN]] 0 ([[WIDTH]] 80, 25 text only), 11 or 12
|
|
**'''_FONT 9, 15''' and '''17''' are the double width versions of 8, 14 and 16 respectively in text '''SCREEN 0 only'''.
|
|
* [[Unicode]] characters can be assigned to a monospace font that contains those unicode characters using the [[_MAPUNICODE]] TO [[ASCII]] mapping statement. The optional '''IME cyberbit.ttf''' font included with QB64 can also be used.
|
|
* Can alpha blend a font with a background screen created by [[_NEWIMAGE]] in 32 bit color.
|
|
* '''Check for valid handle values greater than 0 before using or freeing font handles.'''
|
|
* Free '''unused''' font handles with [[_FREEFONT]]. Freeing invalid handles will create an [[ERROR Codes|"illegal function call"]] error.
|
|
* '''NOTE: SCREEN 0 can only use one font type and style per viewed SCREEN page. Font size may also affect the window size.'''
|
|
|
|
|
|
{{PageExamples}}
|
|
''Example:'' Previewing a font in SCREEN 0. A different true type font can be substituted below.
|
|
{{CodeStart}}
|
|
|
|
fontpath$ = {{Cl|ENVIRON$}}("SYSTEMROOT") + "\fonts\lucon.ttf" 'Find Windows Folder Path.
|
|
{{Cl|DO}}: {{Cl|CLS}}
|
|
{{Cl|DO}}
|
|
style$ = "MONOSPACE"
|
|
{{Cl|PRINT}}
|
|
{{Cl|INPUT}} "Enter A FONT Size 8 {{Cl|TO}} 25: ", fontsize%
|
|
{{Cl|LOOP}} {{Cl|UNTIL}} fontsize% > 7 and fontsize% < 26
|
|
{{Cl|DO}}
|
|
{{Cl|PRINT}}
|
|
{{Cl|INPUT}} "Enter (0) for REGULAR {{Cl|OR}} (1) for ITALIC FONT: ", italic%
|
|
{{Cl|LOOP}} {{Cl|UNTIL}} italic% = 0 or italic% = 1
|
|
{{Cl|DO}}
|
|
{{Cl|PRINT}}
|
|
{{Cl|INPUT}} "Enter (0) for REGULAR {{Cl|OR}} (1) for BOLD FONT: ", bold%
|
|
{{Cl|LOOP}} {{Cl|UNTIL}} italic% = 0 or italic% = 1
|
|
{{Cl|IF}} italic% = 1 {{Cl|THEN}} style$ = style$ + ", ITALIC"
|
|
{{Cl|IF}} bold% = 1 then style$ = style$ + ", BOLD"
|
|
|
|
{{Cl|GOSUB}} ClearFont
|
|
font& = {{Cl|_LOADFONT}}(fontpath$, fontsize%, style$)
|
|
{{Cl|_FONT|_FONT }}font&
|
|
{{Cl|PRINT}}
|
|
{{Cl|PRINT}} "This is your LUCON font! Want to try another STYLE?(Y/N): ";
|
|
{{Cl|DO}}: {{Cl|SLEEP}}: K$ = {{Cl|UCASE$}}({{Cl|INKEY$}}): {{Cl|LOOP}} {{Cl|UNTIL}} K$ = "Y" {{Cl|OR}} K$ = "N"
|
|
{{Cl|LOOP}} {{Cl|UNTIL}} K$ = "N"
|
|
{{Cl|GOSUB}} ClearFont
|
|
|
|
{{Cl|PRINT}} "This is the QB64 default {{Cl|_FONT|_FONT }}16!"
|
|
{{Cl|END}}
|
|
|
|
ClearFont:
|
|
{{Cl|IF}} font& > 0 {{Cl|THEN}}
|
|
{{Cl|_FONT|_FONT }}16 'select inbuilt 8x16 default font
|
|
{{Cl|_FREEFONT}} font&
|
|
{{Cl|END IF}}
|
|
{{Cl|RETURN}}
|
|
|
|
{{CodeEnd}}
|
|
'''NOTE:''' [[ENVIRON$]]("SYSTEMROOT") returns a string value of: "C:\WINDOWS". Add the "\FONTS\" folder and the '''.TTF''' font file name.
|
|
|
|
|
|
|
|
|
|
{{PageSeeAlso}}
|
|
* [[_FONT (function)]]
|
|
* [[_LOADFONT]], [[_FREEFONT]]
|
|
* [[Unicode]], [[_MAPUNICODE]]
|
|
* [[Windows_Libraries#Font_Dialog_Box|Windows Font Dialog Box]]
|
|
|
|
|
|
{{PageNavigation}}
|