VectorTextWidth()

Syntax

Ergebnis.d = VectorTextWidth(Text$ [, Flags])
Beschreibung
Misst die Breite des angegebenen Textes in der aktuellen Vektorzeichnen Schriftart.

Parameter

Text$ Der zu messende Text (einzeilig).
Flags (optional) Dies kann eine Kombination der folgenden Werte sein:
  #PB_VectorText_Default: Gibt den logischen Begrenzungsrahmen des Textes zurück
  #PB_VectorText_Visible: Gibt den sichtbaren Begrenzungsrahmen des Textes zurück
  #PB_VectorText_Offset : Gibt ausgehend von der aktuellen Position den Offset 
                          des Begrenzungsrahmens anstelle der Breite zurück

Rückgabewert

Gibt die Textbreite in Einheiten der Vektorzeichnen-Ausgabe zurück.

Anmerkungen

Die Abmessungen des gezeichneten Textes können im Hinblick auf die beiden Zeichen-Boxen (Begrenzungsrahmen) wie folgt definiert werden:

Die "logische Zeichen-Box" (englisch "logical bounding box") eines Zeichens oder eines Textes definiert den Raum, den der Cursor bewegt werden muss, um den Text richtig nebeneinander zu zeichnen. Jedoch können die tatsächlich gezeichneten Zeichen über diese Box hinausragen (zum Beispiel im Falle von Kursiv- oder oder Serif-Schriften). Bei der Bestimmung, wo der Text gezeichnet werden soll, ist die logische Zeichen-Box die interessante.

Die "sichtbare Zeichen-Box" (englisch "visible bounding box") eines Zeichens oder eines Textes definiert den Raum, in welchem der Text aktuell gezeichnet wird. Dieser Bereich ist üblicherweise größer als die logische Zeichen-Box. Die sichtbaren Abmessungen eines Textes können ermittelt werden durch Angabe des #PB_VectorText_Visible Flags. Die sichtbaren Abmessungen des Textes können bei einem Offset zur logischen Zeichen-Box liegen. Dieser Versatz kann durch Angabe des #PB_VectorText_Offset Flags berechnet werden.

Das folgende Beispiel zeigt einen Beispieltext mit der logischen Zeichen-Box in Blau, der sichtbaren Zeichen-Box in Rot, und der Position der Grundlinie in Grün. Der Ursprung, an dem der Text gezeichnet wird, ist die obere linke Ecke der logischen Zeichen-Box (Blau).

Beispiel

  If OpenWindow(0, 0, 0, 500, 250, "VectorDrawing", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    CanvasGadget(0, 0, 0, 500, 250)
    LoadFont(0, "Monotype Corsiva", 20, #PB_Font_Italic)
    
    If StartVectorDrawing(CanvasVectorOutput(0))
    
      VectorFont(FontID(0), 125)
      Text$ = "Sample"
      
      ; Zeichne Text
      MovePathCursor(25, 25)
      DrawVectorText(Text$)
      
      ; Zeichne die logische Zeichen-Box
      AddPathBox(25, 25, VectorTextWidth(Text$), VectorTextHeight(Text$))
      VectorSourceColor(RGBA(0, 0, 255, 255))
      DashPath(2, 10)

      ; Zeichne die sichtbare Zeichen-Box
      AddPathBox(25 + VectorTextWidth(Text$, #PB_VectorText_Visible|#PB_VectorText_Offset), 
                 25 + VectorTextHeight(Text$, #PB_VectorText_Visible|#PB_VectorText_Offset), 
                 VectorTextWidth(Text$, #PB_VectorText_Visible), 
                 VectorTextHeight(Text$, #PB_VectorText_Visible))
      VectorSourceColor(RGBA(255, 0, 0, 255))
      DashPath(2, 10)        
      
      ; Zeichne die Grundlinie
      MovePathCursor(25, 25 + VectorTextHeight(Text$, #PB_VectorText_Baseline))
      AddPathLine(VectorTextWidth(Text$), 0, #PB_Path_Relative)
      VectorSourceColor(RGBA(0, 255, 0, 255))
      DashPath(2, 10)                    

      StopVectorDrawing()
    EndIf
    
    Repeat
      Event = WaitWindowEvent()
    Until Event = #PB_Event_CloseWindow
  EndIf

Siehe auch

VectorTextHeight(), DrawVectorText(), DrawVectorParagraph(), VectorParagraphHeight(), VectorFont()

Unterstützte OS

Alle

<- VectorTextHeight() - VectorDrawing Inhaltsverzeichnis - VectorUnit() ->