Buchempfehlung
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
"Der" Petzold, das über 1000 Seiten starke Standardwerk zum Win32-API - besonders nützlich u. a. bei der GUI-Programmierung in FreeBASIC! [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Tutorial

Schriftarten unter FreeBASIC

von RedakteurVoltaSeite 2 von 7

Einen FBFont gezielt auswählen

Über einen Trick lässt sich ein bestimmter FBFont in jedem Screen-Format einstellen.
Die Anweisung WIDTH legt nicht nur in einem Konsolenfenster die Anzahl Spalten und Zeilen fest, sondern kann dies auch in jedem Grafikfenster.
Damit dabei ein FBFont meiner Wahl eingestellt wird, berechne ich wie viel Spalten und Zeilen in dem eingestellten Grafikfenster passen.
Zu kompliziert, nein gar nicht!
Wenn ich ein 300 x 200 Pixel Fenster habe, und möchte mit dem FBFont_16 schreiben:

ScreenRes 300, 200, 32
'Width (Fensterbreite \ Zeichenbreite), (Fensterhöhe \ Zeichenhöhe)
Width 300\8, 200\16
Print "Mein FBFont_16"

Dafür habe ich eine kleine Funktion geschrieben:

Function set_fbfont (ByVal x As Integer) As Integer
  Dim As Integer breit, hoch
  ScreenInfo breit, hoch
  Select Case x
    Case 8, 14, 16          'nur 8, 14 oder 16 funktioniert richtig
      Width breit\8, hoch\x ' hier wird auto. Cls ausgeführt
    Case Else
      Return 0        'etwas lief schief
  End Select
  Return 1            'Font erfolgreich gesetzt
End Function

Screen 20, 32
set_fbfont(14)

Print "Mein FBFont_14"
Draw String (20*8, 15*14),"Schrifttyp 8x14 Font (Draw String)",&Hff0000

sleep

Einen Haken hat dieser Trick, die Anweisung WIDTH führt einen CLS (Bildschirm löschen) aus.
D.h. führt man einen Fontwechsel durch wird der vorher ausgegebene Text / Grafik gelöscht.

Hier noch eine Funktion (fonthoehe) die die eingestelte Fonthöhe ermittelt:

Function fonthoehe AS Integer
  Dim As Integer h
  ScreenInfo h
  Select Case  h\HiWord(Width)
    Case Is < 8 : Return 0
    Case 8 To 13 :Return 8
    Case 14, 15 : Return 14
    Case Is > 15 :Return 16
  End Select
End Function

 

Gehe zu Seite Gehe zu Seite  1  2  3  4  5  6  7  
Zusätzliche Informationen und Funktionen
  • Das Tutorial wurde am 14.05.2008 von RedakteurVolta angelegt.
  • Die aktuellste Version wurde am 07.01.2013 von RedakteurVolta gespeichert.
  Bearbeiten Bearbeiten  

  Versionen Versionen