Dokumentation zum Module VectorFonts 1.0
========================================

A. Copyright
------------
-Das Module VectorFonts 1.0 ist Copyright (c) 1992 by Matthias Scherrer.
-Das Programm darf nicht kommerziell vermarktet werden.
-Das Programm darf nur in der vorliegenden Form weitergegeben werden.
-Alle Aenderungen, die am Programm gemacht werden, bitte mir mitteilen!
-Ansonsten kann jeder das Programm verwenden wie er möchte.

B. Hard-/Software Anforderungen
-------------------------------
Das  Module, sowie das Demo-Programm wurden komplett in Oberon geschrieben.
Leider   konnte  ich  das  Demo-Programm  nicht  auf  68000er  und  Kick1.3
Verträglichkeit überprüfen (mit nem 30er und kick2.0 läufts auf jedenfall).
Ansonsten   muss   der  Source  halt  nochmals  neu  compiliert  werden....
Hardware-Anforderungen werden eigentlich keine Besonderen gestellt.

C. Sinn  und  Zweck  
-------------------  
Ich  schreibe  gerade an einem Grafik-Editor für elektronische Schaltungen.
Nun  stand  ich  vor  dem Problem, in die Schaltung hineinzoomen zu können.
Bis  auf den Text gings auch wunderbar, aber der Text wurde natürlich nicht
vergrössert.   Mit  diesem Module ist dies nun möglich.  Gedacht ist dieses
Module  also  in  erster  Linie  für  CAD o.ä.,  wo  ein Text in der Grösse
stufenlos skaliert werden soll.

D. Aufruf
---------
Nach dem IMPORTieren des Moduls stehen folgende drei Befehle zur Verfügung:

-Write  
-WriteString
-Length

Die Bedeutung dürfte klar sein.  In den Konstanten 'width' und 'height' ist
die  Höhe bzw.  die Breite der Zeichen abgespeichert.  Die Procedure Length
habe  ich  aus dem Strings.mod vom Fridtjof Siebert unverändert übernommen.
Wird  also  mein  Module und das Length mal gebraucht, muss nicht unbedingt
noch das Strings.mod importiert werden.

Der Syntax ist folgender:
 
 Write(rp,x,y,Char,xScal,yScal);
 WriteString(rp,x,y,String,xScal,yScal);

Var    | Bedeutung                                  Type
-------:---------------------------------------------------------
rp     : Zeiger auf eine RastPort-Struktur          G.RastPortPtr
x,y    : Position des Zeichens/Textes               INTEGER
Char   : Zeichen (von ASCII 33 bis 127 definiert)   CHAR
String : Zeichenkette (string)                      ARRAY OF CHAR
xScal  : Skalierung in X-Richtung                   REAL
yScal  : Skalierung in Y-Richtung                   REAL

Nicht  definierte  Zeichen  werden von Write nicht ausgedruckt, WriteString
macht  eine  Lücke  (Space).  Deshalb können im String Spaces ohne Probleme
verwendet  werden, auch wenn diese nicht besonders behandelt werden.  (z.B.
"Oberon Demo" ist aequivalent mit "OberonäDemo")

Siehe dazu auch das Beispiels-Programm!


E. Einschränkungen
------------------
-Die    x/y-Koordinaten    werden   nicht   überprüft   (auch   wegen   der
 Geschwindigkeit).
-Der Text wird nur in horizontaler Richtung ausgegeben.
-Textattribute (unterstreichen,italic etc...) werden nicht unterstützt.
-Die Fehlerabfrage ist minim.
-Umlaute werden nicht unterstützt.
-WriteString prüft nicht auf Zeilenende und macht schon gar kein LineFeed.
-Keine Proportional-Schrift.

Wenn  Interesse  besteht,  würd  ich das ganze vielleicht mal so erweitern,
dass  der  Text  in  jede beliebige Richtung gedreht werden kann (wäre z.B.
praktisch um Kurven anzuschreiben...).

F. Bugs
-------
Hoffentlich    keine    :-)    Sonst:     Bitte   mit   möglichst   genauer
Fehlerbeschreibung mir mitteilen.

G. Kontaktadresse
-----------------
Matthias Scherrer
Baselstrasse 63
4242 Laufen
Schweiz

FIDO: 2:302/445.10
Internet: e9178@ibb.ch
Voice: 061/893975

H. Sonstiges
------------
Jegliches  Feedback  würd  mich  freuen, genauso (fast :-)) wie Geld ($$$),
Geschenke  oder  sonstige  Kleinigkeiten  :-)  Ansonsten  hoff ich, dass es
wenigstens ein paar Leute gibt, die das Programm gebrauchen können.

* 11-apr-92/02:47 ms
