home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-07-28 | 41.8 KB | 1,192 lines |
- ****************************************************************
- * *
- * B A S I C - W I N D O W *
- * *
- * Maskengenerator für *
- * *
- * MS Basic, MS Quick Basic, Turbo Basic, Power Basic *
- * *
- ****************************************************************
-
-
-
-
-
- Version 4.0
-
-
- (c) 1989-1992, Ebnet Software
-
-
- D - 8000 München 70 , Passauerstrasse 2 b, Tel. 089/7698755
-
-
-
- 1 Sharewarekonzept
- -------------------
-
- Das Programm BASIC-WINDOW ist urheberrechtlich geschützt. Zu
- Prüfzwecken darf die vorliegende Programmversion jedoch frei
- verwendet, kopiert und weitergegeben werden.
-
- Bitte machen Sie Gebrauch davon und geben Sie das Programm an
- Freunde, Bekannte etc. weiter.
-
- Falls Sie nach Prüfung von BASIC-WINDOW weiterhin damit arbeiten
- möchten, bitte ich Sie sich als registrierter Anwender eintragen
- zu lassen. Für eine Registrierungsgebühr von DM 85.-- erhalten
- Sie die folgenden Leistungen
-
- - Nutzungsrecht für BASIC-WINDOW
- - Zusendung der Vollversion von BASIC-WINDOW
- - Anwenderunterstützung
- - Updateservice für künftige Programmversionen zum Vorzugs-
- preis von nur DM 45,--
- - ein umfangreiches Benutzerhandbuch
- - eine steuerlich abzugsfähige Rechnung
-
- Nur durch Ihr faires Verhalten wird es möglich sein BASIC-WINDOW
- nach Ihren Wünschen weiterzuentwickeln.
-
- Es wird Ihnen die Möglichkeit gegeben, das Programm zu testen
- und auf seine Verwendungsmöglichkeit hin zu prüfen, bevor Sie
- sich bei Gefallen als registrierter Anwender eintragen lassen.
-
- Das Registrierungsformular ist in der Datei REGIST.FOR enthalten
- und kann per DOS-Befehl PRINT ausgedruckt werden.
-
- Die Prüfversion ist eine vollständige Programmversion und keine
- Demoversion. BASIC-WINDOW steht im vollen Funktionsumfang
- zur Verfügung.
-
- In der Ihnen vorliegenden Sharewareversion wird bei Ausgabe eines
- jeden Formates ein Copyrighthinweis ausgegeben.
-
-
- 2 Formatgenerator UniForm
- -------------------------
-
- Für die interaktive Generierung der Bildschirmformate für den Einsatz
- mit BASIC-WINDOW wird der universelle Formatgenerator UniForm V4.0
- mit ausgeliefert.
-
- UniForm ist ein universelles Formatgenerierungssystem für den Einsatz in
- allen gängigen Compilern. Das Gesamtpaket mit Treiberprogrammen für alle
- genannten Compiler erhalten Sie zum Preis von DM 169.--.
-
- Die unten genannten Produkte sind Teilkomponenten von UniForm.
- Jedes der Teilprodukte erhalten Sie zum Preis von DM 85.--.
-
- C-WINDOW MS C, MS Quick C, Turbo C, Turbo C++
-
- BASIC-WINDOW MS Basic, MS Quick Basic, Turbo Basic, Power Basic
-
- PASCAL-WINDOW MS Pascal, MS Quick Pascal, Turbo Pascal
-
- COBOL-WINDOW MS Cobol, MF VS Cobol, MF Professinal Cobol,
- MF Cobol/2
-
- ASSEMBLER-WINDOW MS Assembler, MS Quick Assembler, Turbo Assembler
-
- FORTRAN-WINDOW MS Fortran
-
- CLIPPER-WINDOW Clipper V5.01
-
- Im folgenden werden nur die Komponenten von BASIC-WINDOW beschreiben.
-
-
-
- Inhaltsverzeichnis
-
- 1 Warum UniForm
- 2 Und so wirds gemacht
- 3 Ein einfaches Beispiel
- 4 Inbetriebnahme
- 4.1 Systemanforderungen
- 4.2 Disketteninhalt
- 4.3 Installation
- 5 Formatgenerierung (nur in Vollversion)
- 6 Formataufruf
- 6.1 Ablaufschema
- 6.1.1 Programmsource
- 6.1.1.1 Bereitstellen Standard-Include-Datei
- 6.1.1.2 Bereitstellen Include-Datei für variable Felder
- 6.1.1.3 Maussteuerung
- 6.1.1.4 Bereitstellen Include-Datei für Formatlayout
- 6.1.1.5 Versorgen Übergabeparameter
- 6.1.1.6 Aufruf Treiberprogramm UNIF
- 6.1.1.7 Auswerten Returnfeld
- 6.1.2 Compilieren/ Linken
- 6.1.3 Programmausführung
- 6.1.4 Schattenfunktion
- 6.1.5 Dynamische Attributmodifikation
- 6.2 Ablauf Compilerspezifisch
- 6.2.1 Ablauf in MS Basic/ MS Quick Basic
- 6.2.2 Ablauf in Turbo Basic/ Power Basic
- 7 Ablauf im Beispiel
- 8 Beispiel für "dynamische Attributmodifikation"
- 9 Beispiel für "Menüauswahl"
- A1 Cursorsteuerung
-
-
- 1 Warum UniForm
-
- Komfortabele Benutzeroberflächen sind heutzutage schlichtweg zum
- MUSS geworden. Doch die Programmierung von Masken, Menüs, Fen-
- stern und dergleichen ist relativ kompliziert und zeitaufwendig.
- Zudem sollten solche zeitkritischen Routinen in schnellem
- Assemblercoding realisiert werden. Kurzum - viele Gründe
- sprechen dafür geignete Hilfsmittel zu verwenden.
-
- Die Softwareindustrie bietet für jeden Compiler dutzende
- sogenannter Toolboxen an. Der Programmierer hat es bei der
- Auswahl schwer. Das letztendlich gewählte Produkt stellt sich
- nicht selten als schwierig in der Handhabung heraus oder bietet
- nicht den Funktionsumfang, der für eine schnelle und komfortable
- Formatintegration in sein Programm unabdingbar ist. In jedem
- Fall aber ist die Anwendung auf eine Programmiersprache, oft gar
- auf einen bestimmten Compiler begrenzt.
-
- UniForm als universelles Formatierungssystem macht endgültig
- Schluß mit diesem Dilemna. Das System ist sehr leistungsfähig
- aber dennoch praktisch ohne Einarbeitung bedienbar.
-
- UniForm generiert für jedes generierte Format automatisch ein
- einfaches Sourcebeispiel für den Einsatz in der augenblicklich
- gewählten Programmiersprache. Selbst Programmierneulinge erreichen
- somit innerhalb weniger Minuten erste beeindruckende Ergebnisse!
-
- Durch seine universelle Programmschnittstelle ist der
- Formateinsatz in allen gängigen Compilern realisiert. Das sind
- im einzelnen...
-
- - Microsoft C - Microsoft Pascal
- - Microsoft Quick C - Microsoft Quick Pascal
- - Turbo C - Turbo Pascal
- - Turbo C++ - Microsoft Assembler
- - Microsoft Basic - Microsoft Quick Assembler
- - Microsoft Quick Basic - Turbo Assembler
- - Turbo Basic - Microsoft Cobol
- - Power Basic - VS Cobol
- - Microsoft Fortran - Cobol/2
- - Clipper - Professional Cobol
-
- Bei einem eventuellen Umstieg auf einen anderen Compiler oder
- gar auf eine andere Programmiersprache sind vorhandene Formate
- sofort wieder verfügbar.
-
- UniForm bietet eine vollständige Lösung von der
- Formatgenerierung bis zum Formateinsatz und zeichnet sich
- darüberhinaus durch ein breites Funktionsspektrum aus, deren
- wesentliche Aspekte an dieser Stelle in einer kurzen Übersicht
- einen ersten Eindruck über die Leistungsfähigkeit vermitteln
- soll.
-
- Formatgenerierung
-
- - Interaktive maskengesteuerte Formatgenerierung
- - Mausunterstützung bei der Formaterstellung
- - Umfangreiche Editierfunktionen
- - Alphanumerische-, Ganzzahl- und Dezimalfelder
- - Ein-und Ausgabefelder (nur dem Programm zugänglich)
- - Menüfelder(als"Menu-Items" in Funktions-Auswahlmenüs)
- - Frei wählbare Feld-, Text-, Schatten- und Rahmenattribute
- - Umfangreiche Formatverwaltungsfunktionen
- - Integriertes Hilfesystem
-
- Formataufruf im Programm
-
- - Formataufruf mit nur einem Funktionsaufruf
- - Formateinsatz in allen gängigen Programmiersprachen
- - Automatische Generierung eines Sourcebeispieles
- - Fenstertechnik, Menüs, Popups, Pulldowns ...
- - Dynamische Attribute für Felder, Text, Rahmen und Schatten
- - Mausunterstützung im Programm
- - Funktionsauswahl über Maus, Funktionstasten und Buchstaben
- - Unterstützung aller gängigen Grafikkarten
-
-
- 2 Und So wirds gemacht
-
- Das Konzept von UniForm ist in zwei Verarbeitungsschrittenreali-
- siert. Im ersten Schritt erstellen Sie Ihre Formate interaktiv
- mit dem UniForm-Formatgenerator. Im zweiten Verarbeitungsschritt
- bringen Sie die automatisch generierten INCLUDE-Dateien für
- das Formatlayout und die variablen Felder in Ihren Sourcecode ein
- und binden das Programm zusammen mit dem entsprechenden
- (vom eingesetzten Compiler abhängig) UniForm-Treibermodul.
-
-
- 2.1 Formate generieren
-
- Optionen einstellen
- - Compiler, mit dem Sie arbeiten möchten
- - Verzeichnis, in dem UniForm alle Dateien ablegen soll
- - Feldkennzeichen für die Definition variabler Felder
- - Standardattribute für variable Felder, Text und Rahmen
- - Formatkennzeichen einstellen
- - Formatname
- - Formatdimension
-
- Formatlayout editieren
- - fester Text im Format
- - wahlweise einen einfachen oder dicken Rahmen
- - wahlweise variable Eingabefelder oder Ausgabefelder
-
- Format- und Feldattribute und Feldnamen modifizieren
- - wahlweise verändern der Standardfeldnamen für variable Felder
- - wahlweise verändern der Feldfarben
- - wahlweise verändern der Text- und/oder Rahmenfarbe
-
-
- 2.2 Programme mit Formaten erstellen
-
- Anpassen Programmsource
- - mit Standard-Include Datei für Ihren Compiler
- - mit Include-Datei für variable Felder (von UniFormgeneriert)
- - mit Include-Datei für das Formatlayout (von UniFormgeneriert)
- - mit UniForm-Funktionsaufruf mit entsprechender
- Parameterübergabe
-
- Programmegenerierung
- - übersetzen Sourcecode wie gehabt
- - Linken mit dem entsprechenden UniForm-Treibermodul
-
-
- 3 Ein einfaches Beispiel
-
- Frau Mary Mustermann bekommt den Auftrag eintreffende Waren in
- einer kleinen Datenbank zu verwalten. Frau Mustermann verwendet
- UniForm für die Generierung und Einbindung einer Eingabemaske in
- Ihr Projekt, das Sie mit dem Turbo Basic Compiler von Borland
- realisieren will.
-
- Formatgenerierung
-
- Als erstes definiert Sie im Menü <Optionen> die gewünschte
- Voreinstellung...
- - Compiler Turbo Basic
- - Verzeichnis C:\muster
- - Feldkennzeichen
- für Eingabefeld alphanumerisch !
- für Eingabefeld numerisch "
- - Standardattribute
- für Eingabefeld alphanumerisch Hellweiss auf Schwarz
- für Eingabefeld numerisch Hellweiss auf Schwarz
- für Text Schwarz auf Weiss
- für Rahmen Schwarz auf Weiss
-
- Als nächstes wählt Sie im Menü <Bearbeiten> die Funktion <Format
- neu> und definiert in den Folgemasken den Formatnamen mit
- "order" und die Formatgröße mit Zeile 3 - 18 und Spalte 5 - 70.
- Frau Mustermann sieht sich einem leeren Format in den gewählten
- Attributeinstellungen für Text und Rahmen gegenüber. Sie
- editiert das Formatlayout durch Tastatureingabe, den Cursor
- positioniert Sie über die Maus oder die entsprechenden Cursor-
- Richtungstasten. Funktionen wie Linien ziehen, Rechtecke
- zeichnen, Zeilen bzw. Spalten löschen oder den Rahmen wahlweise
- ein- oder auszuschalten beschleunigen die Formaterstellung
- erheblich. Die variablen Felder definiert Sie durch Eingabe der
- festgelegten Feldkennzeichen in der gewünschten Feldlänge oder
- alternativ durch Die Funktion <Felddefinition> (F5). Die Edi-
- tierfunktionen blendet Sie im Bedarfsfall mit F9 ein um sich mit
- den wichtigsten Editierfunktionen vertraut zu machen.
-
- Frau Mustermann sichert Ihr Format duch Eingabe von <F1>. Im
- Verarbeitungsschritt <Feldnamen/ Attribute> modifiziert Sie
- schließlich die von UniForm automatisch vergebenen Standard-
- Feldnamen (fld0 bis fld5) in "product", "orderdate", "nr",
- "quantity" und "price. Von der Möglichkeit die Farben für Ihre
- Felder oder für Text und Rahmen zu modifizieren macht Sie keinen
- Gebrauch. Sie sichert das Format mit <F1>.
-
- Der Formatgenerator zeigt im Format <Generierung> die erstellten
- Dateien an, die im eingestellten Verzeichnis abgelegtwerden.und
- im Menü <Ansicht> angezeigt werden können...
-
- - order.bld enthält Formatdatei für Formatgenerator
- - order.inc enthält die variablen Felder
- - order.pro enthält das Formatlayout
- - order.smp enthält ein Sourcebeispiel
- - order.att enthält Informationen über Attribute
-
- Programmgenerierung
-
- Frau Mustermann ergänzt das von UniForm automatisch generierte
- Sourcebeispiel um einige wenige Programmanweisungen und
- Kommentare, und schon steht ihr erstes Programm mit UniForm kurz
- vor der Vollendung.
-
- Der Sourcecode sieht letztlich wie folgt aus.
-
- $INCLUDE "ufba03.inc" Std-Include für Turbo Basic
- $INCLUDE "order.inc" Adressierungshilfe order
- CALL MOUSEON
- FKZ% = 2 Format neu ausgeben
- FMT$ = "order " Formatname
- WHILE RET% <> 110 Programmende bei F10
- $INCLUDE "order.pro" Formatlayout bereitstellen
- UniForm-Unterprogrammaufruf
- CALL UNIF (FKZ%, FMT$, product$, RET%, SM%, Daten$)
- FKZ% = 3 Nur Felder neu ausgeben
- CALL DB-VERARBEITUNG
- WEND
- CALL MOUSEOFF
- END
-
- Anschließend compiliert und linkt (Compile to EXE) er sein Programm mit
- dem BASIC-WINDOW Schnittstellenmoduln (UFBA03.COM/ UFBA03M.COM) und stellt
- dabei die Include-Dateien UFBA03.INC, ORDER.INC und ORDER.PRO bereit.
-
- Frau Mustermann ruft das generierte Programm "ORDER.EXE" auf und
- schon sieht sie sich dem Format <order> gegenüber - bereit zur
- Eingabe von Daten.
-
-
- 4 Inbetriebnahme
-
- 4.1 Systemanforderungen
-
- Für den Einsatz von UniForm wird folgende Minimalkonfiguration
- vorausgesetzt
-
- - IBM Personal Computer oder 100 % kompatibel
- - 1 Diskettenlaufwerk/ Festplatte empfohlen
- - PC-DOS, MS-DOS Version 2.1 und höher oder DR-DOS
- - VGA-, EGA-, MDA- oder Hercules-Grafikkarte
- - wahlweise eine Microsoft-kompatible Maus
-
-
- 4.2 Disketteninhalt
-
- Komponenten für Formatgenerator
- UNIFORM.EXE Formatgenerierungsprogramm
- UNIFORM.CFG Konfigurationsdatei
- UNIFORM.HLP Hilfedatei
-
- Komponenten für MS Basic, MS Quick Basic
- UFBA04.OBJ Treibermodul
- UFBA04.INC Standard Include Datei
- UFBA042.BAS Sourcebeispiel "menu"
- UFBA043.BAS Sourcebeispiel "order"
- UFBA044.BAS Sourcebeispiel "easy"
- UFBA045.BAS Sourcebeispiel "dynamic"
-
- Komponenten für Turbo Basic, Power Basic
- UFBA03.COM Schnittstellmodul
- UFBA03M.COM Treibermodul für Mausinitialisierung
- UFBA03.INC Standard Include Datei
- UFBA032.BAS Sourcebeispiel "menu"
- UFBA033.BAS Sourcebeispiel"order"
- UFBA034.BAS Sourcebeispiel "easy"
- UFBA035.BAS Sourcebeispiel "dynamic"
-
- Formatdateien für Sourcebeispiele
- MENU01.BLD Formatdatei "menu01"
- MENU02.BLD Formatdatei "menu02"
- MENU03.BLD Formatdatei "menu03"
- ORDER.BLD Formatdatei "order"
- MESSAGE.BLD Formatdatei "message"
- TESTFMT.BLD Formatdatei "testfmt"
-
- Dokumentation
- HILFE.TXT Dokumentation
- REGIST.FOR Registrierungsformualar
-
-
- 4.3 Installation
-
- Der UniForm Formatgenerator ist auf einem beliebigen Verzeichnis
- auf Festplatte oder Diskettenlaufwerk ablauffähig. Wir empfehlen
- die Einrichtung des Verzeichnisses <UNIFORM> (MD \UNIFORM).
- Kopieren Sie die Dateien UNIFORM.EXE und UNIFORM.CFG
- (Konfigurationsdatei) in das Verzeichnis Ihrer Wahl. Die Hilfedatei
- UNIFORM.HLP wird im Aufrufverzeichnis oder im Hauptverzeichnis
- des aktuellen Laufwerkes erwartet.
-
- Die Treibermodule und die Standard-Include Dateien kopieren Sie
- in Ihre Compilerverzeichnisse.
-
-
- 5 Formatgenerierung
-
- Die Formatgenerierung mit all seinen Formaten und den Funktionen
- zu den Formaten ist im Handbuch der Vollversion ausführlich be-
- schrieben.
-
- An dieser Stelle nur ein Tip. Rechtecke (beim Erstellen des For-
- matlayouts) zeichnen Sie wie folgt:
-
- definieren 1. Koordinate mit ALT-Y
- definieren 2. Koordinate mit ALT-Z
-
- Das Rechteck wird mit dem aktuell eingestellten Linienzeichen
- dargestellt.
-
-
- 6 Formataufruf
-
- Der Aufruf eines mit dem UniForm Formatgenerator erzeugten
- Formates wird durch Aufruf nur einer einzigen Funktion (UNIF)
- realisiert. Das Treibermodul ist für die unterschiedlichen
- Compiler in unterschiedlicher Ausprägung vorhanden und übernimmt
- sämtliche bei einer Formatverarbeitung anfallenden Aufgaben wie
- Ausgabeformatierung, Bildschirmausgabe, Cursorsteuerung,
- Maussteuerung, Eingabeformatierung und liefert Ihnen den
- Returncode der gedrückten Funktionstaste oder Tastenkombination
- am Ende der Verarbeitung. Die Treibermodule sind im schnellem
- Assemblercode geschrieben und zeichnen sich demzufolge durch
- eine extrem kurze Laufzeit aus.
-
- Alle Dateien die für den Ablauf erforderlich sind, werden von
- UniForm bei der Formatgenerierung automatisch zur Verfügung
- gestellt. Sie sind als INCLUDE- bzw. COPY-Elemente in der
- Programmsource bereitzustellen
-
-
- 6.1 Ablaufschema
-
- Für den Aufruf eines mit UniForm generierten Formates stellen
- Sie in Ihrer Programmsource die von UniForm zur Verfügung
- gestellten Include-Dateien bereit, versorgen die
- Übergabeparameter und rufen das entsprechende Treiberprogramm
- UNIF auf. Anschließend compilieren Sie wie gehabt und Linken Ihr
- Programm mit dem entsprechenden UniForm Treibermodul zusammen.
-
-
- 6.1.1 Programmsource
-
- - Bereitstellen Standard-Include-Datei
- - Bereitstellen Include-Datei für variable Felder
- - Bereitstellen Include-Datei für Formatlayout
- - Aufruf Maussteuerung
- - Versorgen Übergabeparameter
- - Aufruf Treiberprogramm UNIF
- - Auswerten Returncode
-
-
- 6.1.1.1 Bereitstellen Standard-Include-Datei
-
- Die Standard Include Datei ist je Compiler vorhanden und enthält
- Felddefinitionen für die Übergabeparameter des Treiberprogrammes
- sowie - im Bedarfsfall - die Definition des
- Maschinenspracheunterprogrammes UNIF selbst.
-
- Die Standard-Include-Dateien finden Sie auf Ihren
- Produktdisketten. Detailinformationen entnehmen Sie bitte
- Punkt 6.2.
-
-
- 6.1.1.2 Bereitstellen Include-Datei für variable Felder
-
- Die Include-Datei für variable Felder beinhaltet die Definition
- der variablen Felder für ein Format im Dialekt des gewählten
- Compilers. Die Include-Datei wird Ihnen bei der
- Formatgenerierung mit dem UniForm Formatgenerator automatisch
- zur Verfügung gestellt. Detailinformationen entnehmen Sie bitte
- Punkt 6.2.
-
-
- 6.1.1.3 Aufruf Maussteuerung
-
- Wenn Sie Ihre Formate mit Mausunterstützung zum Ablauf bringen
- wollen, muß am Programmanfang die Maus initialisiert und am
- Programmende die Maus wieder ausgeschaltet werden. Diese
- Funktionen werden jeweils durch einen einmaligen Funktionsaufruf
- realisiert. Der Aufruf ist compilerspezifisch und in 6.2
- beschrieben.
-
-
- 6.1.1.4 Bereitstellen Include-Datei für Formatlayout
-
- Die Include-Datei für das Formatlayout beinhaltet die Definition
- des Formatlayouts für ein Format im Dialekt des gewählten Compi-
- lers. Die Layoutdatei wird Ihnen bei der Formatgenerierung mit
- dem UniForm Formatgenerator automatisch zur Verfügung gestellt.
- Detailinformationen entnehmen Sie bitte Punkt 6.2.
-
-
- 6.1.1.5 Versorgen Übergabeparameter
-
- Der Aufruf des Treiberprogrammes UNIF setzt die sinnvolle
- Versorgung der Übergabeparameter voraus. Die Definition der
- Übergabeparameter erfolgt in den o. g. Standard-Include-Dateien.
- In der hier angegebenen Reihenfolge sind im jeweiligen Dialekt
- des gewählten Compilers die folgenden Parameter zu übergeben.
-
- Funktionskennzeichen FKZ
- Formatname FMT
- Feldname 1. variables Feld
- Returnfeld RET
- Schreibmarke SM
- Formatlayout Daten
-
- Funktionskennzeichen FKZ
-
- Über das Funktionskennzeichen FKZ wird die auszuführende
- Funktion an das Treiberprogramm UNIF übergeben. Das Feld FKZ
- wird in der Standard-Include-Datei als 2 Byte langes Binärfeld
- zur Verfügung gestellt. In Clipper wird FKZ als 1 Byte langes
- Characterfeld bereitgestellt.
-
- Folgende Funktionen stehen zur Verfügung.
-
- 0 + Sichern aktuellen Bildschirminhalt
- + Rückkehr zum aufrufenden Programm
-
- 1 + Löschen Bildschirm
- + Ausgeben Formatlayout
- + Ausgeben variable Felder mit den aktuellen
- Feldinhalten
- + Warten auf Tastatureingabe(n)
- + Rückkehr zum aufrufenden Programm nach ENTER/ ESC/
- Funktionstaste
-
- 2 + Ausgeben Formatlayout
- + Ausgeben variable Felder mit den aktuellen
- Feldinhalten
- + Warten auf Tastatureingabe(n)
- + Rückkehr zum aufrufenden Programm nach ENTER/ ESC/
- Funktionstaste
-
- 3 + Ausgeben variable Felder mit den aktuellen
- Feldinhalten
- + Warten auf Tastatureingabe(n)
- + Rückkehr zum aufrufenden Programm nach ENTER/ ESC/
- Funktionstaste
-
- 4 + Ausgeben Formatlayout eines leeren Formates
- + Warten auf Tastatureingabe(n)
- + Rückkehr zum aufrufenden Programm nach ENTER/ ESC/
- Funktionstaste
-
- 5 + Ausgeben gesicherten Bildschirminhalt
-
- 6 + Ausgeben Formatlayout
- + Ausgeben variable Felder mit den aktuellen
- Feldinhalten
- + Rückkehr zum aufrufenden Programm
-
- 7 + Ausgeben variable Felder mit den aktuellen
- Feldinhalten
- + Rückkehr zum aufrufenden Programm
-
- 20*) + Dynamisches Ändern Feldattribut
- + Rückkehr zum aufrufenden Programm
-
- 21*) + Dynamisches Ändern Textattribut
- + Rückkehr zum aufrufenden Programm
-
- 22*) + Dynamisches Ändern Rahmenattribut
- + Rückkehr zum aufrufenden Programm
-
- Bei der dynamischen Änderung von Text-, Rahmen- und
- Feldattributen (Funktionen 20 bis 22) wird das neue Attribut im
- Parameter RET übergeben. Das zu modifizierende variable Feld
- wird im Übergabeparameter SM als fortlaufende Nummer (beginnend
- mit 0) übergeben.
-
- Beispiel (Attributeinstellung "Rot auf Weiss" für 5.
- variables Feld)
-
- FKZ = 20 FKZ für dynamisches Ändern Feldattribut
- SM = 4 5. variables Feld
- RET = 244 Code für Attributeinstellung "Rot auf Weiss"
-
- Beispiel (Attributeinstellung "Schwarz auf Grün" für
- Textbereich)
-
- FKZ = 21 FKZ für dynamisches Ändern Textattribut
- RET = 32 Code für Attributeinstellung "Schwarz auf Grün"
-
- Beispiel (Attributeinstellung "Blau auf Rot" für
- Rahmenbereich)
-
- FKZ = 22 FKZ für dynamisches Ändern Rahmenattribut
- RET = 65 Code für Attributeinstellung "Blau auf Rot"
-
- *) Eine weitere Möglichkeit der dynamischen Attributmodifikation
- ist im Kapitel 6.1.5 beschrieben.
-
- Formatname FMT
-
- Im Übergabeparameter FMT wird der Formatname an das
- Treiberprogramm UNIF übergeben. Das Feld FMT wird in der
- Standard-Include-Datei als 8 Byte langes Characterfeld zur
- Verfügung gestellt. Der Formatname ist ggf. rechtsbündig mit
- Leerzeichen aufzufüllen. Unterscheidungen zwischen Groß- und
- Kleinbuchstaben werden nicht gemacht.
-
- Feldname des ersten variablen Feldes
-
- In diesem Übergabeparameter ist das erste variable Feld bzw.
- dessen Adresse an das Treiberprogramm UNIF zu übergeben. Bei den
- Funktion 0, 4 und 5 ist der Übergabeparameter irrelevant und mit
- FMT zu versorgen. Etwaige compilerspezifische Abweichungen
- entnehmen Sie bitte aus Punkt 6.2 ff.
-
- Returnfeld RET
-
- Im Übergabeparameter RET wird der Tastenreturncode an das
- aufrufende Programm von UNIF zurückgegeben. Das Feld RET wird in
- der Standard-Include-Datei als 2 Byte langes Binärfeld zur
- Verfügung gestellt. In Clipper wird FKZ als 1 Byte langes Cha-
- racterfeld bereitgestellt.
- Der Parameter RET dient auch zur Übergabe des
- Schattenattributes(siehe 6.1.4).
-
- Der Parameter wird weiterhin bei den Funktionen der dynamischen
- Attributmodifikation für Text, Rahmen oder variable Felder
- (Funktionen 20 bis 22) als Übergabeparameter für den
- neueinzustellenden Attributcode verwendet.
-
- Schreibmarke SM
-
- Im Übergabeparameter SM wird die Schreibmarkenposition an das
- Treiberprogramm UNIF als fortlaufende Nummer (beginnend mit 0)
- übergeben. Nur zugängliche Felder (Eingabefleder und Menüfelder)
- sind dabei zu berücksichtigen. Die Positionierung der
- Schreibmarke auf Ausgabefelder ist nicht möglich.
-
- Weiterhin wird nach Rückkehr vom Treiberprogramm die aktuelle
- Schreibmarkenposition zurückgegeben.
-
- Das Feld SM wird in der Standard-Include-Datei als 2 Byte langes
- Binärfeld zur Verfügung gestellt. In Clipper wird SM als 1 Byte
- langes Characterfeld bereitgestellt.
-
- Beispiel (Schreibmarke auf 1. zugängliches Feld)
-
- SM = 0
-
- Beispiel (Schreibmarke auf 5. zugängliches Feld)
-
- SM = 4
-
- Der Parameter wird darüberhinaus bei der Funktion der
- dynamischen Attributmodifikation für variable Felder (Funktion
- 22) als Übergabeparameter (fortlaufende Nummer, beginnend mit 0)
- für das zu bearbeitende Feld verwendet. Im Gegensatz zur
- Schreibmarkenpositionierung sind hier Ausgabefelder zu
- berücksichtigen.
-
- Formatlayout Daten
-
- Im Übergabeparameter Daten wird das Formatlayout an das
- Unterprogramm UNIF übergeben. UniForm stellt für die Versorgung
- des Bereiches ein entsprechendes INCLUDE- bzw. COPY-Element zur
- Verfügung. Das Feld Daten wird in der Standard-Include-Datei als
- 3 Kilobyte langes Characterfeld zur Verfügung gestellt.
-
-
- 6.1.1.6 Aufruf Treiberprogramm UNIF
-
- Der Unterprogrammaufruf ist nach erfolgter Parameterversorgung
- in Notation des gewählten Compilers vorzunehmen.
-
- Detailinformationen entnehmen Sie bitte Punkt 6.2.
-
-
- 6.1.1.7 Auswerten Returnfeld
-
- Im Übergabeparameter RET wird nach jedem Formataufruf der
- Tastenreturncode hinterlegt. D. h. nach Betätigung einer der u.
- g. Tasten(kombinationen) erhalten Sie die Steuerung in Ihrem
- Programm zurück.
-
- - Tastenretuncodes
-
- ESC 99 | ENTER 100
- |
- F1 101 | SH - F1 111
- F2 102 | SH - F2 112
- F3 103 | SH - F3 113
- F4 104 | SH - F4 114
- F5 105 | SH - F5 115
- F6 106 | SH - F6 116
- F7 107 | SH - F7 117
- F8 108 | SH - F8 118
- F9 109 | SH - F9 119
- F10 110 | SH - F10 120
- |
- ^ - F1 121 | ALT - F1 131
- ^ - F2 122 | ALT - F2 132
- ^ - F3 123 | ALT - F3 133
- ^ - F4 124 | ALT - F4 134
- ^ - F5 125 | ALT - F5 135
- ^ - F6 126 | ALT - F6 136
- ^ - F7 127 | ALT - F7 137
- ^ - F8 128 | ALT - F8 138
- ^ - F9 129 | ALT - F9 139
- ^ - F10 130 | ALT - F10 140
- |
- ALT - 1 141 | ALT - 6 146
- ALT - 2 142 | ALT - 7 147
- ALT - 3 143 | ALT - 8 148
- ALT - 4 144 | ALT - 9 149
- ALT - 5 145 | ALT - 10 150
- |
- ALT - A 151 | ^ - A 177
- ALT - B 152 | ^ - B 178
- ALT - C 153 | ^ - C 179
- ALT - D 154 | ^ - D 180
- ALT - E 155 | ^ - E 181
- ALT - F 156 | ^ - F 182
- ALT - G 157 | ^ - G 183
- ALT - H 158 | ^ - H 184
- ALT - I 159 | ^ - I 185
- ALT - J 160 | ^ - J 186
- ALT - K 161 | ^ - K 187
- ALT - L 162 | ^ - L 188
- ALT - M 163 | ^ - M 189
- ALT - N 164 | ^ - N 190
- ALT - O 165 | ^ - O 191
-
- ALT - P 166 | ^ - P 192
- ALT - Q 167 | ^ - Q 193
- ALT - R 168 | ^ - R 194
- ALT - S 169 | ^ - S 195
- ALT - T 170 | ^ - T 196
- ALT - U 171 | ^ - U 197
- ALT - V 172 | ^ - V 198
- ALT - W 173 | ^ - W 199
- ALT - X 174 |
- ALT - Y 175 |
- ALT - Z 176 |
-
- Bei Tastenreturncode 99 (ESC) werden eventuelle Modifikationen
- variabler Felder verworfen.
-
- Für die Realisierung sog. Balkenmenüs über Menüfelder beachten
- Sie bitte folgendes. Bei Betätigung der Tasten ENTER von einem
- Menüfeld aus (Cursor zeigt auf Menüfeld) wird der Returncode
- n+200 zurückgegeben (n = Nummer des ungeschützten variablen
- Feldes (Eingabefelder und markierbare Felder) innerhalb des
- aktuellen Formates). Bei der Betätigung einer der o. g.
- Tasten(Kombinationen) auf einem markierbaren Feld wird der
- Tastenreturncode der Funktionstaste zurückgemeldet. Bei der
- Eingabe von ESC wird 99 zurückgemeldet.
-
-
- 6.1.2 Compilieren/ Linken
-
- Für das Compilieren Ihres Programmes stellen Sie die Std-
- Include-Datei, die Include-Dateien für die variablen Felder und
- das Formatlayout bereit. Das entsprechende Treibermodul ist in
- das Programm einzubinden. Detaillierte Informationen über
- Compiler- und Linkvorschriften entnehmen Sie bitte aus Ihren
- Programmierhandbüchern.
-
-
- 6.1.3 Programmausführung
-
- Für die Ausführung Ihrer Programme sind neben der eigentlichen
- EXE-Datei keine weiteren Komponenten erforderlich.
-
-
- 6.1.4 Schattenfunktion
-
- Neben der Rückgabe der Tastenreturncodes wird das Feld RET
- benutzt um das Schattenattribut für die Ausgabe von
- Formatenmit Schatten zu übergeben.
-
- Beachten Sie bitte die folgenden Regeln...
-
- Bei RET=0 wird das Format ohne Schatten ausgegeben.
- Bei RET !=0 wird das Format mit Schatten mit dem Attributwert
- in RET ausgegeben.
-
- Die Attributwerte für Monochrom- bzw. Farbmodus finden Sie im
- Anhang A3 (Vollversion).
-
- Die Schattenfunktion ist für Differenzausgaben (FKZ=3) nicht
- relevant.
-
- Der Schatten wird am rechten und unteren Rand des Formates
- angezeigt.
-
-
- 6.1.5 Dynamische Attributmodifikation
-
- Jedes Elenent eines Formates ist in dem Bereich <Daten>
- hinterlegt. So sind u. a. die Farbattribute für Text, für Rahmen
- und für alle variablen Felder in einem Byte im Bereich <Daten>
- dargestellt. Das gleiche gilt für den Feldtyp. Durch Modifizie-
- rung dieses Bytes kann das entsprechende Attribut durch einen
- einzigen MOVE-Befehl geändert werden.
-
- In der Attribut-Distanzdatei (format.ATT) werden die Distanzen
- zu den jeweiligen Elementen hinterlegt. Die Attribut-
- Distanzdatei wird bei der Formatgenerierung automatisch
- fürjedes Format erzeugt.
-
- Folgende Distanzen im Bereich <Daten> werden angezeigt...
-
- Text-Farbattribut
- Rahmen-Farbattribut
- Feld-Farbattribut
- Feld-Typ
-
- Die Farbattribute können durch Veränderung des Bytewertes mit
- den Werten 0 bis 255 (siehe Attributwerte im Anhang A3)
- modifiziert werden.
-
- Der Feldtyp kann die Werte <a> für Ausgabefeld bzw. <e> für
- Eingabefeld enthalten. Alle anderen Zuweisungen sind ungültig
- und führen zu unvorhergesehenen Ergebnissen.
-
- Ein Beispiel finden Sie in Kapitel 8.
-
-
- 6.2 Ablauf Compilerspezifisch
-
- Im folgenden werden compilerspezifische Hinweise für den For-
- mataufruf mit UniForm übersichtlich zusammengefaßt. Die
- Übersicht zeigt insbesondere alle INCLUDE Dateien, die
- syntaktischen Vorschriften für den Aufruf des universellen
- Treiberprogrammes UNIF sowie Übersetzungs- und Linkvorschriften.
-
- Ein einfaches Sourcebeispiel verdeutlicht schließlich den
- Formateinsatz mit UniForm. In dem Sourcebeispiel wird das Format
- "order" am Bildschirm angezeigt und das Programm nach einer
- beliebigen Tasten(kombinations)eingabe beendet (die Formatdatei
- ORDER.BLD finden Sie auf Ihren Produktdisketten). Das Sour-
- cebeispiel können Sie vom UniForm-Formatgenerator durch
- Generierung des Formates ORDER automatisch generieren lassen.
- UniForm erzeugt die Sourcedatei ORDER.SMP (SMP für sample).
-
-
- 6.2.1 Ablauf in MS Basic/ MS Quick Basic
-
- Standard-Include-Datei
-
- UFBA04.INC
-
- Formatspezifische Include-Dateien
-
- <format>.INC Include-Datei für variable Felder
- <format>.PRO Include-Datei für Formatlayout
-
- UNIF-Unterprogrammaufruf
-
- 'INCLUDE: '<format>.PRO'
- CALLS UNIF(FKZ%,FMT$,feldname,RET%,SM%,Daten$)
-
- Maussteuerung
-
- CALLS MOUSEON Maus initialisieren
- CALLS MOUSEOFF() Maus wieder ausschalten
-
- Compilieren
-
- Bereitstellen der o. g. Include-Dateien
-
- Linken
-
- einbinden UFBA04.OBJ
-
- Sourcebeispiel "ORDER.BAS" - Ausgeben Format ORDER
-
- Übersetzen: bc order /o
- Linken: link order ufba04
- Programmaufruf: order
-
- REM Standard-Include-Datei'$INCLUDE: 'UFBA04.INC'
- REM Definieren variable Felder aus <order>
- '$INCLUDE: 'order.INC'
- REM Maus initialisieren
- CALLS MOUSEON
- REM Funktionsidentifikation
- FKZ% = 2
- REM Cursorposition
- SM% = 0REM Schattenattribut
- RET% = 112
- REM Formatname
- FMT$ = "order "
- REM Formatlayout in Daten
- '$INCLUDE: 'order.PRO'
- REM call UNIF
- CALLS UNIF(FKZ%, FMT$, fld0$, RET%, SM%, Daten$)
- REM Maus ausschalten
- CALLS MOUSEOFF
- END
-
- Include-Datei für variable Felder ORDER.INC
-
- product$=" "
- orderdate$=" "
- nr$=" "
- quantity& = 0
- price! = 0.0
-
- Hinweise
-
- Die Feldvariablen (format.INC) sind global zu definieren.
-
- Die Zeichen ALT 0, ALT 26 und ALT 253 bis 255 sind in der
- Formatgenerierung nicht zugelassen.
-
- Unterstützt werden die Versionen MS Quick Basic V4.0 ff und MS
- Basic V6.0 ff.
-
-
- 6.2.2 Ablauf in Turbo Basic/ Power Basic
-
- Standard-Include-Datei
- UFBA03.INC
-
- Formatspezifische Include-Dateien
-
- <format>.INC Include-Datei für variable Felder
- <format>.PRO Include-Datei für Formatlayout
-
- UNIF-Unterprogrammaufruf
-
- $INCLUDE "<format>.PRO"
- CALL UNIF(FKZ%,FMT$,feldname,RET%,SM%,Daten$)
-
- Maussteuerung
-
- CALL MOUSEON Maus initialisieren
- CALL MOUSEOFF Maus wieder ausschalten
-
- Compilieren
-
- Bereitstellen der o. g. Include-Dateien
- Compile to EXE
-
- Linken
-
- einbinden UFBA03.COM
- einbinden UFBA03M.COM (für Maussteuerung)
-
- Sourcebeispiel "ORDER.BAS" - Ausgeben Format ORDER
-
- Übersetzen: compile to EXE
- Linken: - (implizit)
- Programmaufruf: order
-
- REM Standard-Include-Datei
- $INCLUDE "UFBA03.INC"
- REM Definieren variable Felder aus <order>
- $INCLUDE "order.INC"
- REM Maus initialisieren
- CALL MOUSEON
- REM Funktionsidentifikation
- FKZ% = 2
- REM Cursorposition
- SM% = 0
- REM Schattenattribut
- RET% = 112REM Formatname
- FMT$ = "order "
- REM format layout
- $INCLUDE "order.PRO"
- REM call UNIF
- CALL UNIF(FKZ%, FMT$, fld0$, RET%, SM%, Daten$)
- REM Maus ausschaltenCALL MOUSEOFF
- END
-
- Include-Datei für variable Felder ORDER.INC
-
- product$=" "
- orderdate$=" "
- nr$=" "
- quantity& = 0
- price! = 0.0
-
- Hinweise
-
- Die Feldvariablen (format.INC) sind global zu definieren.
-
- Die Zeichen ALT 0, ALT 26 und ALT 253 bis 255 sind in der
- Formatgenerierung nicht zugelassen.
-
-
- 7 Ablauf im Beispiel
-
- Der Formateinsatz mit UniForm wird im folgenden durch weitere
- Beispiele verdeutlicht.
-
- Zunächst soll das einfache Anwendungsbeispiel aus Kapitel 3
- geringfügig erweitert werden.
-
- Nach der Erfassung eines Artikels im Menü <order> soll in dem
- überlappenden leeren Format <message> die Aufnahme in die
- Datenbank bildlich bestätigt werden. Nach Programmbeendigung mit
- der Funktionstaste <F10> soll der gesicherte Bildschirminhalt
- vor Programmaufruf wieder angezeigt werden.
-
- Die Generierung des Formates <order> ist in Kapitel 3
- nachzulesen. Zur Generierung des Formates <message> ist einzig
- zu bemerken, daß es sich hier um ein sog. leeres Format (Format
- ohne variable Felder) handelt. Somit entfällt der Verarbei-
- tungsschritt "Feldnamen/ Attribute" bei der Formaterstellung mit
- dem UniForm Formatgenerator; der Formataufruf muß mit
- Funktionskennzeichen FKZ = 4 erfolgen.
-
- Das o. g. Beispiel ist in diesem Kapitel in allen von UniForm
- unterstützten Compilern realisiert. Der Dialekt des Sourcecodes
- in den Listings bezieht sich jeweils auf eine bestimme Version
- des jeweiligen Compilers. Etwaige geringfügige Abweichungen in
- älteren oder neueren Versionen entnehmen Sie bitte aus
- IhrenProgrammierhandbüchern.
-
- Aus Gründen der besseren Lesbarkeit des Sourcecodings wurde in
- den Beispielen weitgehend auf die Prinzipien der
- wohlstrukturierten Programmierung verzichtet.
-
- Das Sourcecodebeispiel und die beiden Formatdateien ORDER.BLD
- und MESSAGE.BLD finden Sie übrigens auch auf Ihren
- Produktdisketten (siehe Punkt 4.2, Programmbeispiel "order").
- Compiler- und Linkeranweisungen entnehmen Sie bitte aus Kapitel 6
-
- Sie können also das Programmbeispiel auf einfache Art und Weise
- ausprobieren!
-
- In der Vollversion ist das Programmbeispiel im Handbuch
- abgedruckt.
-
-
- 8 Beispiel für "dynamische Attributmodifikation"
-
- Durch Modifiziern des Bereiches <Daten> haben Sie die
- Möglichkeit die Attribute für Text, Rahmen und variable Felder
- dynamisch, d. h. während des Programmablaufes zu modifizieren.
- In einem einfachen Beispiel wird das Ablaufprinzip der o. g.
- Funktion deutlich gemacht.
-
- Das Format <TESTFMT> wird zunächst in den generierten Attributen
- für Text, Rahmen und die beiden variablen Felder <fld0> und
- <fld1> angezeigt.
-
- Bei der zweiten Ausgabe werden die Farben der beiden Felder
- <fld0> und <fld1> modifiziert.
-
- Bei der dritten Ausgabe wird der Feldtyp der beiden Felder
- <fld0> und <fld1> auf <Ausgabefeld> modifiziert. D. h. Sie sind
- für den Benutzer nicht mehr zugänglich.
-
- Bei der vierten Ausgabe werden die Farben von Text und Rahmen
- modifiziert.
-
- Bei der fünften und letzten Ausgabe wird das Schattenattribut
- modifiziert.
-
- Das Sourcecodebeispiel und die Formatdatei <TESTFMT.BLD> finden
- Sie wiederum auf Ihren Produktdisketten (siehe Punkt 4.2,
- Programmbeispiel "dynamic"). Sie können also auch dieses
- Programmbeispiel sofort testen. Compiler- und Linkeranweisungen
- entnehmen Sie bitte aus Kapitel 6.
-
- In der Vollversion ist das Programmbeispiel im Handbuch
- abgedruckt.
-
-
- 9 Beispiel für "Menüauswahl"
-
- In diesem Beispiel wird der Einsatz von Menüfeldern
- demonstriert. Im Ersten Format <menu01> werden die Menüpunkte
- <Functions> und <Programend> zur Auswahl angeboten. Die
- Funktionen können ausgewählt werden über Cursor/Maus-
- Positionierung und Enter oder durch die Rechte Maustaste oder
- durch Eingabe der hervorgehobenen Buchstaben. Im zweiten Format
- <menu02> wird ein Pull-Down Format angezeigt mit den Funktionen
- <file new, file open, feile delete und program end>. Die
- Funktionsauswahl kann hier neben den oben beschriebenen
- Möglichkeiten über die entsprechende Funktionstaste ausgewählt
- werden. Im letzten Format <menu03> wird lediglich eine Funktion
- angedeutet, die durch Auswahl einer der Menüpunkte denkbar wäre.
- Sie kehren mit jeder Eingabe zum ersten Format zurück.
-
- Das Sourcecodebeispiel und die oben beschriebenen Formatdateien
- finden Sie wiederum auf Ihren Produktdisketten (siehe Punkt 4.2,
- Programmbeispiel "menu").
-
-
- Anhang A1 - Cursorsteuerung
-
- Die Cursor- und Maustasten werden im UniForm-Formatgenerator und
- in mit UniForm eingesetzten Formaten wie fogt ausgewertet:
-
- - Pfeil links Cursor um 1 Spalte nach links. Bei Feldanfang
- springen zu Feldende des vorherigen Feldes.
- - Pfeil rechst Cursor um 1 Spalte nach rechts. Bei Feldende
- springen zu Feldanfang des nächsten Feldes.
-
- - Home Cursor auf Feldanfang des aktuellen Feldes.
- - End Cursor auf Feldende des aktuellen Feldes.
-
- - Pfeil unten Cursor auf Feldanfang des nächsten Feldes.
- - Pfeil oben Cursor auf Feldanfang des vorherigen Feldes.
- - Page Down Cursor auf Feldanfang des nächsten Feldes
- - Page Up Cursor auf Feldanfang des vorherigen Feldes.
- - Back Slash Löschen aktuelle Spalte und Cursor um 1 Zeichen
- nach links.
- - Del Löschen Zeichen an Cursorposition. Das
- Füllzeichen am Feldende ist Space. bzw. Null.
-
- - Ins (Modus) Einfügen Zeichen an Cursorposition. Das letzte
- Zeichen geht verloren.
-
-
- - Maustaste links Cursor an Mausposition.
-
- - Maustaste rechts Cursor an Mausposition und Rückkehr zum
- aufrufenden Programm (Rückgabe ENTER (RET = 100)).
-
-
- - Zeichen an Feldende Cursor auf Feldanfang des nächsten
- Feldes.
-
- - SPACE (NUM-Felder) Im Vorkammabereich wird SPACE
- akzeptiert. Im Nachkommabereich wird SPACE
- durch 0 ersetzt.
- An
- Ebnet Software
-
- D-8000 München 70
- Passauerstrasse 2 b
-
-
- REGISTRIERUNG/ BESTELLUNG Softwareprodukt BASIC-WINDOW
- ------------------------------------------------------
-
- Hiermit bestelle(n) ich(wir) das Softwareprodukt BASIC-WINDOW
- zum Preis von DM 85.-- zzgl. Versand (DM 4.--).
-
- Die Bezahlung soll erfolgen:
-
- ( ) durch beigefügten Verrechnungsscheck
- ( ) durch Vorauszahlung auf das nachfolgendes Konto:
- Postgiroamt München
- BLZ. 700 100 80
- Konto 418194-800
- ( ) durch Postnachnahme zuzüglich Versandkosten
- ( ) in der BRD DM 3,--
- ( ) im Ausland DM 10,--
-
- Die Lieferung soll erfolgen:
- ( ) im 5.25 Zoll Disketten-Format
- ( ) im 3.5 Zoll Disketten-Format
-
- Die genannten Preise verstehen sich inklusive Mehrwertsteuer.
-
- Als registrierter Anwender werden Sie über künftige Programm-
- versionen automatisch benachrichtigt. Neue Programm-Versionen
- können im Updateservice zum Vorzugspreis von DM 45.-- bestellt
- werden.
-
- Anwenderunterstützung (telefonisch/schriftlich) wird ausnahmslos
- für registrierte Anwender geleistet.
-
- Absender:
-
-
-
-
-
- Datum/Unterschrift:
-
-
- .............................
-