Linienbegleitende Texte

Top  Previous  Next

Mit dem Pseudoattribut $baselineID können die Zeichen eines Textelements entlang des Verlaufs eines Stringelements gezeichnet werden. Dazu muß das Pseudoattribut auf die ID des Stringelements gesetzt werden. Mit dem folgenden Befehl erhält $baselineID des geöffneten Textelements zum Beispiel die ID 0d6488912f7ded58:

 

 Attr( db_GetElement() ->$baselineID 0d6488912f7ded58)

 

Die ID des Stringelements wird dabei permanent gemacht und ändert daher ihren Wert, wenn sie nicht bereits vorher permanent war. Nach einem Redraw wird der Text dann linienbegleitend gezeichnet. Das folgende kurze Skript demonstriert eine interaktive Anwendung, bei der zuerst das Stringelement und dann das Textelement identifiziert werden und letzteres automatisch linienbegleitend gesetzt wird.

 

Begin

 Echo /save

 Echo /nostop

 ! ************************************************************************

 ! Textelement linienbegleitend zu einem Stringelement setzen.

 ! 1. Identifizieren des Stringelements

 ! 2. Identifizieren des Textelements

 ! ************************************************************************

 Declare id ptr res

 Echo Basislinie identifizieren

 IdentifyElement /nomarker

%%input

 Value( id DBquery( $id from open string /noq))

 c_if "m_lt( 1 s_strlen( Value( id)))"

 Echo Text identifizieren

 IdentifyElement /nomarker

%%input

 Value( ptr DBquery( $pointer from open text /noq))

 c_if "m_lt( 1 s_strlen( Value( ptr)))"

 Value( res Attr( Value( ptr) ->$baselineID Value( id)))

 c_if "m_ne( 0 Value( res))"

 Echo Attribut $baselineID konnte nicht gesetzt werden

 c_endIf

 c_else

 Echo kein Text

 c_endIf

 c_else

 Echo keine Basislinie

 c_endIf

 Clear

 Redraw

 Echo /restore

End

 

--------------------OLD_TEXT---------------------

Mit dem Pseudoattribut $baselineID können die Zeichen eines Textelements entlang des Verlaufs eines Stringelements gezeichnet werden. Dazu muß das Pseudoattribut auf die ID des Stringelements gesetzt werden. Mit dem folgenden Befehl erhält $baselineID des geöffneten Textelements zum Beispiel die ID 0d6488912f7ded58:

 

    Attr( db_GetElement() ->$baselineID 0d6488912f7ded58)

 

Die ID des Stringelements wird dabei permanent gemacht und ändert daher ihren Wert, wenn sie nicht bereits vorher permanent war. Nach einem Redraw wird der Text dann linienbegleitend gezeichnet. Das folgende kurze Skript demonstriert eine interaktive Anwendung, bei der zuerst das Stringelement und dann das Textelement identifiziert werden und letzteres automatisch linienbegleitend gesetzt wird.

 

Begin

  Echo /save

  Echo /nostop

  ! ************************************************************************

  ! Textelement linienbegleitend zu einem Stringelement setzen.

  ! 1. Identifizieren des Stringelements

  ! 2. Identifizieren des Textelements

  ! ************************************************************************

  Declare id ptr res

  Echo Basislinie identifizieren

  IdentifyElement /nomarker

%%input

  Value( id DBquery( $id from open string /noq))

  c_if "m_lt( 1 s_strlen( Value( id)))"

    Echo Text identifizieren

    IdentifyElement /nomarker

%%input

    Value( ptr DBquery( $pointer from open text /noq))

    c_if "m_lt( 1 s_strlen( Value( ptr)))"

      Value( res Attr( Value( ptr) ->$baselineID Value( id)))

      c_if "m_ne( 0 Value( res))"

        Echo Attribut $baselineID konnte nicht gesetzt werden

      c_endIf

    c_else

      Echo kein Text

    c_endIf

  c_else

    Echo keine Basislinie

  c_endIf

  Clear

  Redraw

  Echo /restore

End