Buchempfehlung
Windows System Programming
Windows System Programming
Das Kompendium liefert viele interessante Informationen zur Windows-Programmierung auf Englisch. [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 3 von 7

Die alte GfxPrint - Routine für den neuen Fontheader

Wer alle drei FBfonts mischen möchte kann dies mit der DrawString - Routine machen.
Hier wird das Zeichen aus dem gewählten FBFont Pixel für Pixel auf den Bildschirm oder in ein Image gezeichnet.

'DrawString.bas by Volta
'ab FB-Version 0.18 (neuer Header für die fb_font's)
'Idee von der alten GfxPrint-Routine

Type fb_font_x
  As Integer breit, hoch
  As Any Ptr start
End Type
Extern Font8  Alias "fb_font_8x8"  As fb_font_x
Extern Font14 Alias "fb_font_8x14" As fb_font_x
Extern Font16 Alias "fb_font_8x16" As fb_font_x

Sub DrawString( ByVal buffer As Any Ptr=0, ByVal xpos As Integer, _
  ByVal ypos As Integer, ByRef text As String, ByVal fgcol As Integer=Color, _
  ByRef f As fb_font_x)
  Dim As Integer l,bits,xend
  Dim row As UByte Ptr
  l = Len(text)-1
  If l < 0 Then Exit Sub
  ScreenInfo xend
  ScreenLock
  For i As Integer = 0 To l
    row = text[i]*f.hoch+f.start
    For y  As Integer= ypos To ypos+f.hoch-1
      bits = *row
      For x  As Integer= xpos To xpos+7
        If (bits And 1) Then
          If (buffer = 0) Then
            PSet (x,y),fgcol
          Else
            PSet buffer,(x,y),fgcol
          End If
        End If
          bits = bits Shr 1
      Next
      row +=1
    Next
    xpos +=f.breit
    If xpos > xend Then Exit For
  Next
  ScreenUnLock
End Sub

In der FB-Version 0.24 hat sich die interne Bezeichnung der Font-Pointer geändert. Die alten Bezeichnungen "fb_font_8x8" sind zu "__fb_font" geworden deshalb muss ab FB 0.24 folgendes geändert werden:

..
Extern __fb_font(0 To 2)  Alias "__fb_font"  As fb_font_x
#Define Font8  __fb_font(0)
#Define Font14 __fb_font(1)
#Define Font16 __fb_font(2)
..

#Include "DrawString.bas"
Screen 18,32
DrawString ,20,10,"Schrifttyp 8x8 Font",&h0000ff,Font8
DrawString ,40,30,"Schrifttyp 8x14 Font",&h00ff00,Font14
DrawString ,60,60,"Schrifttyp 8x16 Font",&hff0000,Font16

Draw String (80,80),"Schrifttyp 8x16 Font (Draw String)",&Hffffff

Sleep

Die DrawString - Routine ist im wesentlichen an die FB-Anweisung DRAW STRING angelehnt, damit man sie möglichst mit nur kleine Änderungen statt DRAW STRING benutzen kann.
Vergleich:
DRAW STRING [Puffer,] (x, y), Text [, [Farbe] [, [Font] [, Methode] ]]
DrawString [Puffer] , x, y, Text , [Farbe] , Font


DrawString (ein Wort)
, ohne Puffer: Komma setzen
, x-y-Position ohne Klammer
, Text / String wie sonst
, ohne Farbangabe wird aktuelle Fordergrundfarbe benutzt
, einen der 3 Fontnamen angeben
(, keine Methode möglich)

 

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