home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / assemblr / library / screen / uniform / hilfe.txt next >
Text File  |  1993-07-28  |  43KB  |  1,198 lines

  1. ****************************************************************
  2. *                                                              *
  3. *                A S M -  W I N D O W                          *
  4. *                                                              *
  5. *                 Maskengenerator für                          *
  6. *                                                              *
  7. *            MS ASM, MS Quick ASM, Turbo ASM                   *
  8. *                                                              *
  9. ****************************************************************
  10.  
  11.  
  12.  
  13.  
  14.  
  15.                         Version    4.0
  16.  
  17.  
  18.                   (c) 1989-1992, Ebnet Software
  19.  
  20.  
  21.       D - 8000 München 70 , Passauerstrasse 2 b, Tel. 089/7698755
  22.  
  23.  
  24.  
  25. 1 Sharewarekonzept
  26. -------------------
  27.  
  28. Das Programm ASM-WINDOW ist urheberrechtlich geschützt. Zu 
  29. Prüfzwecken darf die vorliegende Programmversion jedoch frei 
  30. verwendet, kopiert und weitergegeben werden.
  31.  
  32. Bitte machen Sie Gebrauch davon und geben Sie das Programm an 
  33. Freunde, Bekannte etc. weiter.
  34.  
  35. Falls Sie nach Prüfung von ASM-WINDOW weiterhin damit arbeiten 
  36. möchten, bitte ich Sie sich als registrierter Anwender eintragen
  37. zu lassen. Für eine Registrierungsgebühr von DM 85.-- erhalten 
  38. Sie die folgenden Leistungen  
  39.  
  40.   - Nutzungsrecht für ASM-WINDOW
  41.   - Zusendung der Vollversion von ASM-WINDOW 
  42.     (mit allen Speichermodellen)
  43.   - Anwenderunterstützung 
  44.   - Updateservice für künftige Programmversionen zum Vorzugs-
  45.     preis von nur DM 45,-- 
  46.   - ein umfangreiches Benutzerhandbuch
  47.   - eine steuerlich abzugsfähige Rechnung
  48.  
  49. Nur durch Ihr faires Verhalten wird es möglich sein ASM-WINDOW
  50. nach Ihren Wünschen weiterzuentwickeln.
  51.  
  52. Es wird Ihnen die Möglichkeit gegeben, das Programm zu testen
  53. und auf seine Verwendungsmöglichkeit hin zu prüfen, bevor Sie 
  54. sich bei Gefallen als registrierter Anwender eintragen lassen. 
  55.  
  56. Das Registrierungsformular ist in der Datei REGIST.FOR enthalten
  57. und kann per DOS-Befehl PRINT ausgedruckt werden.
  58.  
  59. Die Prüfversion ist eine vollständige Programmversion und keine 
  60. Demoversion. ASM-WINDOW steht im vollen Funktionsumfang 
  61. zur Verfügung.
  62.  
  63. In der Ihnen vorliegenden Sharewareversion wird bei Ausgabe eines
  64. jeden Formates ein Copyrighthinweis ausgegeben.
  65.  
  66.  
  67. 2 Formatgenerator UniForm
  68. -------------------------
  69.  
  70. Für die interaktive Generierung der Bildschirmformate für den Einsatz
  71. mit ASM-WINDOW wird der universelle Formatgenerator UniForm V4.0
  72. mit ausgeliefert.
  73.  
  74. UniForm ist ein universelles Formatgenerierungssystem für den Einsatz in 
  75. allen gängigen Compilern. Das Gesamtpaket mit Treiberprogrammen für alle
  76. genannten Compiler erhalten Sie zum Preis von DM 169.--.
  77.  
  78. Die unten genannten Produkte sind Teilkomponenten von UniForm. 
  79. Jedes der Teilprodukte erhalten Sie zum Preis von DM 85.--.
  80.  
  81.   C-WINDOW           MS C, MS Quick C, Turbo C, Turbo C++
  82.  
  83.   BASIC-WINDOW       MS Basic, MS Quick Basic, Turbo Basic, Power Basic
  84.  
  85.   PASCAL-WINDOW      MS Pascal, MS Quick Pascal, Turbo Pascal
  86.  
  87.   COBOL-WINDOW       MS Cobol, MF VS Cobol, MF Professinal Cobol,
  88.                      MF Cobol/2
  89.  
  90.   ASM-WINDOW         MS Assembler, MS Quick Assembler, Turbo Assembler
  91.  
  92.   FORTRAN-WINDOW     MS Fortran
  93.  
  94.   CLIPPER-WINDOW     Clipper V5.01
  95.  
  96. Im folgenden werden nur die Komponenten von ASM-WINDOW beschreiben.
  97.  
  98.  
  99.  
  100. Inhaltsverzeichnis
  101.  
  102. 1       Warum UniForm
  103. 2       Und so wirds gemacht
  104. 3       Ein einfaches Beispiel
  105. 4       Inbetriebnahme
  106. 4.1     Systemanforderungen
  107. 4.2     Disketteninhalt
  108. 4.3     Installation
  109. 5       Formatgenerierung (nur in Vollversion)
  110. 6       Formataufruf
  111. 6.1     Ablaufschema
  112. 6.1.1   Programmsource
  113. 6.1.1.1 Bereitstellen Standard-Include-Datei
  114. 6.1.1.2 Bereitstellen Include-Datei für variable Felder
  115. 6.1.1.3 Maussteuerung
  116. 6.1.1.4 Bereitstellen Include-Datei für Formatlayout
  117. 6.1.1.5 Versorgen Übergabeparameter
  118. 6.1.1.6 Aufruf Treiberprogramm UNIF
  119. 6.1.1.7 Auswerten Returnfeld
  120. 6.1.2   Compilieren/ Linken
  121. 6.1.3   Programmausführung
  122. 6.1.4   Schattenfunktion
  123. 6.1.5   Dynamische Attributmodifikation
  124. 6.2     Ablauf Compilerspezifisch
  125. 6.2.1   Ablauf in MS ASM, MS Quick ASM ,Turbo ASM
  126. 7       Ablauf im Beispiel
  127. 8       Beispiel für "dynamische Attributmodifikation"
  128. 9       Beispiel für "Menüauswahl"
  129. A1      Cursorsteuerung
  130.  
  131.  
  132. 1 Warum UniForm
  133.  
  134. Komfortabele Benutzeroberflächen sind heutzutage schlichtweg zum
  135. MUSS geworden.  Doch die  Programmierung von Masken, Menüs, Fen-
  136. stern und dergleichen ist relativ kompliziert und zeitaufwendig.
  137. Zudem  sollten   solche  zeitkritischen  Routinen  in schnellem 
  138. Assemblercoding  realisiert   werden.  Kurzum   - viele  Gründe 
  139. sprechen dafür geignete Hilfsmittel zu verwenden.
  140.  
  141. Die  Softwareindustrie   bietet  für   jeden  Compiler  dutzende
  142. sogenannter Toolboxen  an. Der  Programmierer  hat  es  bei  der
  143. Auswahl schwer.  Das letztendlich  gewählte Produkt  stellt sich
  144. nicht selten  als schwierig in der Handhabung heraus oder bietet
  145. nicht den Funktionsumfang, der für eine schnelle und komfortable
  146. Formatintegration in  sein Programm  unabdingbar ist.  In  jedem
  147. Fall aber ist die Anwendung auf eine Programmiersprache, oft gar
  148. auf einen bestimmten Compiler begrenzt.
  149.  
  150. UniForm als  universelles  Formatierungssystem  macht  endgültig
  151. Schluß mit  diesem Dilemna.  Das System  ist sehr leistungsfähig
  152. aber dennoch praktisch ohne Einarbeitung bedienbar.
  153.  
  154. UniForm generiert  für jedes  generierte Format  automatisch ein
  155. einfaches Sourcebeispiel  für den  Einsatz in der augenblicklich
  156. gewählten Programmiersprache. Selbst Programmierneulinge erreichen 
  157. somit  innerhalb weniger  Minuten erste beeindruckende Ergebnisse!
  158.  
  159. Durch   seine    universelle   Programmschnittstelle   ist   der
  160. Formateinsatz in  allen gängigen Compilern  realisiert. Das sind
  161. im einzelnen...
  162.  
  163.    - Microsoft C              - Microsoft Pascal
  164.    - Microsoft Quick C        - Microsoft Quick Pascal
  165.    - Turbo C                  - Turbo Pascal
  166.    - Turbo C++                - Microsoft Assembler
  167.    - Microsoft Basic          - Microsoft Quick Assembler
  168.    - Microsoft Quick Basic    - Turbo Assembler
  169.    - Turbo Basic              - Microsoft Cobol
  170.    - Power Basic              - VS Cobol
  171.    - Microsoft Fortran        - Cobol/2
  172.    - Clipper                  - Professional Cobol
  173.  
  174. Bei einem  eventuellen Umstieg  auf einen  anderen Compiler oder
  175. gar auf  eine andere  Programmiersprache sind vorhandene Formate
  176. sofort wieder verfügbar.
  177.  
  178. UniForm   bietet    eine    vollständige    Lösung    von    der
  179. Formatgenerierung  bis   zum  Formateinsatz  und  zeichnet  sich
  180. darüberhinaus durch  ein breites  Funktionsspektrum  aus,  deren
  181. wesentliche Aspekte   an dieser Stelle in einer kurzen Übersicht
  182. einen ersten  Eindruck über  die  Leistungsfähigkeit  vermitteln
  183. soll.
  184.  
  185.   Formatgenerierung
  186.  
  187.    - Interaktive maskengesteuerte Formatgenerierung
  188.    - Mausunterstützung bei der Formaterstellung
  189.    - Umfangreiche Editierfunktionen
  190.    - Alphanumerische-, Ganzzahl- und Dezimalfelder
  191.    - Ein-und Ausgabefelder (nur dem Programm zugänglich)
  192.    - Menüfelder(als"Menu-Items" in Funktions-Auswahlmenüs)
  193.    - Frei wählbare Feld-, Text-, Schatten- und Rahmenattribute
  194.    - Umfangreiche Formatverwaltungsfunktionen
  195.    - Integriertes Hilfesystem
  196.  
  197.   Formataufruf im Programm
  198.  
  199.    - Formataufruf mit nur einem Funktionsaufruf
  200.    - Formateinsatz in allen gängigen Programmiersprachen
  201.    - Automatische Generierung eines Sourcebeispieles
  202.    - Fenstertechnik, Menüs, Popups, Pulldowns ...
  203.    - Dynamische Attribute für Felder, Text, Rahmen und Schatten
  204.    - Mausunterstützung im Programm
  205.    - Funktionsauswahl über Maus, Funktionstasten und Buchstaben
  206.    - Unterstützung aller gängigen Grafikkarten
  207.  
  208.  
  209. 2 Und So wirds gemacht
  210.  
  211. Das Konzept  von UniForm ist in zwei Verarbeitungsschrittenreali-
  212. siert. Im ersten Schritt erstellen Sie Ihre Formate interaktiv
  213. mit dem  UniForm-Formatgenerator. Im  zweiten Verarbeitungsschritt
  214. bringen Sie  die automatisch  generierten INCLUDE-Dateien  für
  215. das Formatlayout und  die variablen Felder in Ihren Sourcecode ein
  216. und binden  das   Programm  zusammen   mit  dem   entsprechenden
  217. (vom eingesetzten Compiler abhängig) UniForm-Treibermodul.
  218.  
  219.  
  220. 2.1  Formate generieren
  221.  
  222. Optionen einstellen
  223.   - Compiler, mit dem Sie arbeiten möchten
  224.   - Verzeichnis, in dem UniForm alle Dateien ablegen soll
  225.   - Feldkennzeichen für die Definition variabler Felder
  226.   - Standardattribute für variable Felder, Text und  Rahmen
  227.   - Formatkennzeichen einstellen
  228.   - Formatname
  229.   - Formatdimension
  230.  
  231. Formatlayout editieren
  232.   - fester Text im Format
  233.   - wahlweise einen einfachen oder dicken Rahmen
  234.   - wahlweise variable Eingabefelder oder Ausgabefelder
  235.  
  236. Format- und Feldattribute und Feldnamen modifizieren
  237.   - wahlweise verändern der Standardfeldnamen für variable Felder
  238.   - wahlweise verändern der Feldfarben
  239.   - wahlweise verändern der Text- und/oder Rahmenfarbe
  240.  
  241.  
  242. 2.2  Programme mit Formaten erstellen
  243.  
  244. Anpassen Programmsource
  245.   - mit Standard-Include Datei für Ihren Compiler
  246.   - mit Include-Datei für variable Felder (von UniFormgeneriert)
  247.   - mit Include-Datei für das Formatlayout (von UniFormgeneriert)
  248.   - mit UniForm-Funktionsaufruf mit entsprechender
  249.     Parameterübergabe
  250.  
  251. Programmegenerierung
  252.   - übersetzen Sourcecode wie gehabt
  253.   - Linken mit dem entsprechenden UniForm-Treibermodul
  254.  
  255.  
  256. 3 Ein einfaches Beispiel
  257.  
  258. Frau Mary  Mustermann bekommt  den Auftrag eintreffende Waren in
  259. einer kleinen  Datenbank zu verwalten. Frau Mustermann verwendet
  260. UniForm für die Generierung und Einbindung einer Eingabemaske in
  261. Ihr Projekt,  das Sie  mit dem  MASM  Compiler realisieren will.
  262.  
  263. Formatgenerierung
  264.  
  265. Als erstes definiert Sie im Menü <Optionen> die gewünschte
  266. Voreinstellung...
  267.   - Compiler                              Microsoft Assembler
  268.   - Verzeichnis                           C:\muster
  269.   - Feldkennzeichen
  270.         für Eingabefeld alphanumerisch    !
  271.         für Eingabefeld numerisch         "
  272.   - Standardattribute
  273.         für Eingabefeld alphanumerisch    Hellweiss auf Schwarz
  274.         für Eingabefeld numerisch         Hellweiss auf Schwarz
  275.         für Text                          Schwarz auf Weiss
  276.         für Rahmen                        Schwarz auf Weiss
  277.  
  278. Als nächstes wählt Sie im Menü <Bearbeiten> die Funktion <Format
  279. neu> und  definiert in  den Folgemasken  den  Formatnamen mit
  280. "order" und die Formatgröße mit Zeile 3 - 18 und Spalte 5 - 70.
  281. Frau Mustermann  sieht sich einem leeren Format in den gewählten
  282. Attributeinstellungen  für   Text  und   Rahmen  gegenüber.  Sie
  283. editiert das  Formatlayout  durch  Tastatureingabe,  den  Cursor
  284. positioniert Sie  über die  Maus oder die entsprechenden Cursor-
  285. Richtungstasten.  Funktionen   wie  Linien   ziehen,   Rechtecke
  286. zeichnen, Zeilen  bzw. Spalten löschen oder den Rahmen wahlweise
  287. ein-  oder   auszuschalten  beschleunigen  die  Formaterstellung
  288. erheblich. Die  variablen Felder definiert Sie durch Eingabe der
  289. festgelegten Feldkennzeichen  in der  gewünschten Feldlänge oder
  290. alternativ durch  Die Funktion  <Felddefinition> (F5).  Die Edi-
  291. tierfunktionen blendet Sie im Bedarfsfall mit F9 ein um sich mit
  292. den wichtigsten Editierfunktionen vertraut zu machen.
  293.  
  294. Frau Mustermann  sichert Ihr  Format duch  Eingabe von  <F1>. Im
  295. Verarbeitungsschritt  <Feldnamen/   Attribute>  modifiziert  Sie
  296. schließlich die  von UniForm  automatisch  vergebenen  Standard-
  297. Feldnamen (fld0  bis  fld5)  in  "product",  "orderdate",  "nr",
  298. "quantity" und  "price. Von  der Möglichkeit die Farben für Ihre
  299. Felder oder für Text und Rahmen zu modifizieren macht Sie keinen
  300. Gebrauch. Sie sichert das Format mit <F1>.
  301.  
  302. Der Formatgenerator zeigt im Format <Generierung> die erstellten
  303. Dateien an,  die im  eingestellten Verzeichnis abgelegtwerden.und
  304. im Menü <Ansicht> angezeigt werden können...
  305.  
  306.   - order.bld       enthält Formatdatei für Formatgenerator
  307.   - order.mac       enthält die variablen Felder und Formatlayout
  308.   - order.smp       enthält ein Sourcebeispiel
  309.   - order.att       enthält Informationen über Attribute
  310.  
  311. Programmgenerierung
  312.  
  313. Frau Mustermann  ergänzt das  von UniForm automatisch generierte
  314. Sourcebeispiel  um   einige   wenige   Programmanweisungen   und
  315. Kommentare, und schon steht ihr erstes Programm mit UniForm kurz 
  316. vor der Vollendung.
  317.  
  318. Der Sourcecode sieht letztlich wie folgt aus.
  319.  
  320.         DOSSEG
  321. EXTRN   UNIF:NEAR
  322. EXTRN   MOUSEON:NEAR
  323. EXTRN   MOUSEOFF:NEAR
  324.         .MODEL SMALL
  325.         .CODE
  326.         jmp    start
  327. INCLUDE UFAS01.MAC
  328. INCLUDE order.MAC
  329. format DB 'order   '
  330.  
  331. start:   push  cs
  332.          pop   ds
  333.          push  cs
  334.          pop   es
  335.  
  336.          call  MOUSEON
  337.          mov   word ptr FKZ,2
  338.          mov   word ptr SM,0
  339. l1:
  340.          lea   bx,FKZ
  341.          push  bx
  342.          lea   bx,format
  343.          push  bx
  344.          lea   bx,product
  345.          push  bx
  346.          lea   bx,RETC
  347.          push  bx
  348.          lea   bx,SM
  349.          push  bx
  350.          lea   bx,Atestfmt
  351.          push  bx
  352.          call  UNIF
  353.          add   sp,12
  354. ; DB-Verarbeitung
  355.          mov   word ptr FKZ,2
  356.          cmp   word ptr RETC,110
  357.          je    l1
  358. fin:     call  MOUSEOFF
  359.          mov   ah,4ch
  360.          mov   al,0
  361.          int   21h
  362.          END
  363.  
  364. Anschließend compiliert und linkt er sein Programm mit 
  365. dem ASSEMBLER-WINDOW Schnittstellenmodul und stellt dabei die 
  366. Include-Dateien UFAS01.MAC und ORDER.MAC bereit.
  367.  
  368. Frau Mustermann ruft das generierte Programm "ORDER.EXE" auf und
  369. schon sieht  sie sich  dem Format <order> gegenüber - bereit zur
  370. Eingabe von Daten.
  371.  
  372.  
  373. 4 Inbetriebnahme
  374.  
  375. 4.1 Systemanforderungen
  376.  
  377. Für den  Einsatz von  UniForm wird folgende Minimalkonfiguration
  378. vorausgesetzt
  379.  
  380.  - IBM Personal Computer oder 100 % kompatibel
  381.  - 1 Diskettenlaufwerk/ Festplatte empfohlen
  382.  - PC-DOS, MS-DOS Version 2.1 und höher oder DR-DOS
  383.  - VGA-, EGA-, MDA- oder Hercules-Grafikkarte
  384.  - wahlweise eine Microsoft-kompatible Maus
  385.  
  386.  
  387. 4.2 Disketteninhalt
  388.  
  389. Komponenten für Formatgenerator
  390.  
  391.   UNIFORM.EXE Formatgenerierungsprogramm
  392.   UNIFORM.CFG Konfigurationsdatei
  393.   UNIFORM.HLP Hilfedatei
  394.  
  395. Komponenten für MS Assembler, MS Quick Assembler, TurboAssembler
  396.   UFAS01S.OBJ Treibermodul - model small
  397.   UFAS01M.OBJ Treibermodul - model medium (nur Vollversion)
  398.   UFAS01C.OBJ Treibermodul - model compact (nur Vollversion)
  399.   UFAS01L.OBJ Treibermodul - model large (nur Vollversion)
  400.   UFAS01.MAC  Standard Include Datei
  401.   UFAS012.ASM Sourcebeispiel "menu"
  402.   UFAS013.ASM Sourcebeispiel "order"
  403.   UFAS014.ASM Sourcebeispiel "easy"
  404.   UFAS015.ASM Sourcebeispiel "dynamic"
  405.  
  406. Formatdateien für Sourcebeispiele
  407.   MENU01.BLD  Formatdatei "menu01"
  408.   MENU02.BLD  Formatdatei "menu02"
  409.   MENU03.BLD  Formatdatei "menu03"
  410.   ORDER.BLD   Formatdatei "order"
  411.   MESSAGE.BLD Formatdatei "message"
  412.   TESTFMT.BLD Formatdatei "testfmt"
  413.  
  414. Dokumentation
  415.   HILFE.TXT   Dokumentation
  416.   REGIST.FOR  Registrierungsformualar
  417.  
  418.  
  419. 4.3 Installation
  420.  
  421. Der UniForm Formatgenerator ist auf einem beliebigen Verzeichnis
  422. auf Festplatte oder Diskettenlaufwerk ablauffähig. Wir empfehlen
  423. die Einrichtung  des  Verzeichnisses  <UNIFORM>  (MD \UNIFORM).
  424. Kopieren   Sie   die   Dateien   UNIFORM.EXE   und UNIFORM.CFG
  425. (Konfigurationsdatei) in das Verzeichnis Ihrer Wahl. Die Hilfedatei  
  426. UNIFORM.HLP wird  im Aufrufverzeichnis  oder  im Hauptverzeichnis 
  427. des aktuellen Laufwerkes erwartet.
  428.  
  429. Die Treibermodule  und die Standard-Include Dateien kopieren Sie
  430. in Ihre Compilerverzeichnisse.
  431.  
  432.  
  433. 5 Formatgenerierung
  434.  
  435. Die Formatgenerierung mit all seinen Formaten und den Funktionen
  436. zu den Formaten ist im Handbuch der Vollversion ausführlich be-
  437. schrieben.
  438.  
  439. An dieser Stelle nur ein Tip. Rechtecke (beim Erstellen des For-
  440. matlayouts) zeichnen Sie wie folgt:
  441.  
  442.   definieren 1. Koordinate mit ALT-Y
  443.   definieren 2. Koordinate mit ALT-Z
  444.  
  445. Das Rechteck wird mit dem aktuell eingestellten Linienzeichen
  446. dargestellt.
  447.  
  448.  
  449. 6 Formataufruf
  450.  
  451. Der Aufruf  eines  mit  dem  UniForm  Formatgenerator  erzeugten
  452. Formates wird  durch Aufruf  nur einer  einzigen Funktion (UNIF)
  453. realisiert.  Das  Treibermodul  ist  für  die  unterschiedlichen
  454. Compiler in unterschiedlicher Ausprägung vorhanden und übernimmt
  455. sämtliche bei  einer Formatverarbeitung anfallenden Aufgaben wie
  456. Ausgabeformatierung,     Bildschirmausgabe,     Cursorsteuerung,
  457. Maussteuerung,  Eingabeformatierung   und  liefert   Ihnen   den
  458. Returncode der  gedrückten Funktionstaste oder Tastenkombination
  459. am Ende  der Verarbeitung.  Die Treibermodule  sind im schnellem
  460. Assemblercode geschrieben  und zeichnen  sich  demzufolge  durch
  461. eine extrem kurze Laufzeit aus.
  462.  
  463. Alle Dateien  die für  den Ablauf  erforderlich sind, werden von
  464. UniForm bei  der  Formatgenerierung  automatisch  zur Verfügung
  465. gestellt. Sie  sind  als  INCLUDE-  bzw.  COPY-Elemente  in  der
  466. Programmsource bereitzustellen
  467.  
  468.  
  469. 6.1 Ablaufschema
  470.  
  471. Für den  Aufruf eines  mit UniForm  generierten Formates stellen
  472. Sie in  Ihrer  Programmsource  die  von  UniForm  zur  Verfügung
  473. gestellten     Include-Dateien     bereit,     versorgen     die
  474. Übergabeparameter und  rufen das  entsprechende  Treiberprogramm
  475. UNIF auf. Anschließend compilieren Sie wie gehabt und Linken Ihr
  476. Programm mit dem entsprechenden UniForm Treibermodul zusammen.
  477.  
  478.  
  479. 6.1.1 Programmsource
  480.  
  481.   -  Bereitstellen Standard-Include-Datei
  482.   -  Bereitstellen Include-Datei für variable Felder
  483.   -  Bereitstellen Include-Datei für Formatlayout
  484.   -  Aufruf Maussteuerung
  485.   -  Versorgen Übergabeparameter
  486.   -  Aufruf Treiberprogramm UNIF
  487.   -  Auswerten Returncode
  488.  
  489.  
  490. 6.1.1.1 Bereitstellen Standard-Include-Datei
  491.  
  492. Die Standard Include Datei ist je Compiler vorhanden und enthält
  493. Felddefinitionen für die Übergabeparameter des Treiberprogrammes
  494. sowie    -    im    Bedarfsfall    -    die    Definition    des
  495. Maschinenspracheunterprogrammes UNIF selbst.
  496.  
  497. Die    Standard-Include-Dateien    finden    Sie    auf    Ihren
  498. Produktdisketten. Detailinformationen  entnehmen Sie bitte
  499. Punkt 6.2.
  500.  
  501.  
  502. 6.1.1.2 Bereitstellen Include-Datei für variable Felder
  503.  
  504. Die Include-Datei  für variable Felder beinhaltet die Definition
  505. der variablen  Felder für  ein Format  im Dialekt  des gewählten
  506. Compilers.   Die    Include-Datei    wird    Ihnen    bei    der
  507. Formatgenerierung mit  dem UniForm  Formatgenerator  automatisch
  508. zur Verfügung  gestellt. Detailinformationen entnehmen Sie bitte
  509. Punkt 6.2.
  510.  
  511.  
  512. 6.1.1.3 Aufruf Maussteuerung
  513.  
  514. Wenn Sie  Ihre Formate  mit Mausunterstützung zum Ablauf bringen
  515. wollen, muß  am Programmanfang  die Maus  initialisiert  und  am
  516. Programmende  die   Maus  wieder   ausgeschaltet  werden.  Diese
  517. Funktionen werden jeweils durch einen einmaligen Funktionsaufruf
  518. realisiert.  Der   Aufruf  ist  compilerspezifisch  und  in  6.2
  519. beschrieben.
  520.  
  521.  
  522. 6.1.1.4 Bereitstellen Include-Datei für Formatlayout
  523.  
  524. Die Include-Datei für das Formatlayout beinhaltet die Definition
  525. des Formatlayouts für ein Format im Dialekt des gewählten Compi-
  526. lers. Die  Layoutdatei wird  Ihnen bei der Formatgenerierung mit
  527. dem UniForm  Formatgenerator automatisch zur Verfügung gestellt.
  528. Detailinformationen entnehmen Sie bitte Punkt 6.2.
  529.  
  530.  
  531. 6.1.1.5 Versorgen Übergabeparameter
  532.  
  533. Der  Aufruf  des  Treiberprogrammes  UNIF  setzt  die  sinnvolle
  534. Versorgung der  Übergabeparameter  voraus.  Die  Definition  der
  535. Übergabeparameter erfolgt in den o. g. Standard-Include-Dateien.
  536. In der  hier angegebenen  Reihenfolge sind im jeweiligen Dialekt
  537. des gewählten Compilers die folgenden Parameter zu übergeben.
  538.  
  539.   Funktionskennzeichen FKZ
  540.   Formatname           FMT
  541.   Feldname             1. variables Feld
  542.   Returnfeld           RET
  543.   Schreibmarke         SM
  544.   Formatlayout         Daten
  545.  
  546. Funktionskennzeichen FKZ
  547.  
  548. Über  das   Funktionskennzeichen  FKZ   wird  die  auszuführende
  549. Funktion an  das Treiberprogramm  UNIF übergeben.  Das Feld  FKZ
  550. wird in  der Standard-Include-Datei  als 2 Byte langes Binärfeld
  551. zur Verfügung  gestellt. In  Clipper wird  FKZ als 1 Byte langes
  552. Characterfeld bereitgestellt.
  553.  
  554. Folgende Funktionen stehen zur Verfügung.
  555.  
  556.       0  + Sichern aktuellen Bildschirminhalt
  557.          + Rückkehr zum aufrufenden Programm
  558.  
  559.       1  + Löschen Bildschirm
  560.          + Ausgeben Formatlayout
  561.          + Ausgeben variable Felder mit den aktuellen
  562.            Feldinhalten
  563.          + Warten auf Tastatureingabe(n)
  564.          + Rückkehr zum aufrufenden Programm nach ENTER/ ESC/
  565.            Funktionstaste
  566.  
  567.       2  + Ausgeben Formatlayout
  568.          + Ausgeben variable Felder mit den aktuellen
  569.            Feldinhalten
  570.          + Warten auf Tastatureingabe(n)
  571.          + Rückkehr zum aufrufenden Programm nach ENTER/ ESC/
  572.            Funktionstaste
  573.  
  574.       3  + Ausgeben variable Felder mit den aktuellen
  575.            Feldinhalten
  576.          + Warten auf Tastatureingabe(n)
  577.          + Rückkehr zum aufrufenden Programm nach ENTER/ ESC/
  578.            Funktionstaste
  579.  
  580.       4  + Ausgeben Formatlayout eines leeren Formates
  581.          + Warten auf Tastatureingabe(n)
  582.          + Rückkehr zum aufrufenden Programm nach ENTER/ ESC/
  583.            Funktionstaste
  584.  
  585.       5  + Ausgeben gesicherten Bildschirminhalt
  586.  
  587.       6  + Ausgeben Formatlayout
  588.          + Ausgeben variable Felder mit den aktuellen
  589.            Feldinhalten
  590.          + Rückkehr zum aufrufenden Programm
  591.  
  592.       7  + Ausgeben variable Felder mit den aktuellen
  593.            Feldinhalten
  594.          + Rückkehr zum aufrufenden Programm    
  595.  
  596.     20*) + Dynamisches Ändern Feldattribut
  597.          + Rückkehr zum aufrufenden Programm
  598.  
  599.     21*) + Dynamisches Ändern Textattribut
  600.          + Rückkehr zum aufrufenden Programm
  601.  
  602.     22*) + Dynamisches Ändern Rahmenattribut
  603.          + Rückkehr zum aufrufenden Programm
  604.  
  605. Bei  der   dynamischen   Änderung   von   Text-,   Rahmen-   und
  606. Feldattributen (Funktionen  20 bis 22) wird das neue Attribut im
  607. Parameter RET  übergeben. Das  zu modifizierende  variable  Feld
  608. wird im  Übergabeparameter SM als fortlaufende Nummer (beginnend
  609. mit 0) übergeben.
  610.  
  611.     Beispiel (Attributeinstellung "Rot auf Weiss" für 5.
  612.     variables Feld)
  613.  
  614.       FKZ = 20     FKZ für dynamisches Ändern Feldattribut
  615.       SM = 4       5. variables Feld
  616.       RET = 244    Code für Attributeinstellung "Rot auf Weiss"
  617.  
  618.     Beispiel (Attributeinstellung "Schwarz auf Grün" für
  619.     Textbereich)
  620.  
  621.       FKZ = 21     FKZ für dynamisches Ändern Textattribut
  622.       RET = 32     Code für Attributeinstellung "Schwarz auf Grün"
  623.  
  624.     Beispiel (Attributeinstellung "Blau auf Rot" für
  625.     Rahmenbereich)
  626.  
  627.       FKZ = 22     FKZ für dynamisches Ändern Rahmenattribut
  628.       RET = 65     Code für Attributeinstellung "Blau auf Rot"
  629.  
  630. *) Eine weitere Möglichkeit der dynamischen Attributmodifikation
  631. ist im Kapitel 6.1.5 beschrieben.
  632.  
  633. Formatname FMT
  634.  
  635. Im  Übergabeparameter   FMT   wird   der   Formatname   an   das
  636. Treiberprogramm  UNIF  übergeben.  Das  Feld  FMT  wird  in  der
  637. Standard-Include-Datei  als  8  Byte  langes  Characterfeld  zur
  638. Verfügung gestellt.  Der Formatname  ist ggf.  rechtsbündig  mit
  639. Leerzeichen aufzufüllen.  Unterscheidungen  zwischen  Groß-  und
  640. Kleinbuchstaben werden nicht gemacht.
  641.  
  642. Feldname des ersten variablen Feldes
  643.  
  644. In diesem  Übergabeparameter ist  das erste  variable Feld  bzw.
  645. dessen Adresse an das Treiberprogramm UNIF zu übergeben. Bei den
  646. Funktion 0, 4 und 5 ist der Übergabeparameter irrelevant und mit
  647. FMT  zu   versorgen.  Etwaige  compilerspezifische  Abweichungen
  648. entnehmen Sie bitte aus Punkt 6.2 ff.
  649.  
  650. Returnfeld RET
  651.  
  652. Im  Übergabeparameter  RET  wird  der  Tastenreturncode  an  das
  653. aufrufende Programm von UNIF zurückgegeben. Das Feld RET wird in
  654. der Standard-Include-Datei  als  2  Byte  langes  Binärfeld  zur
  655. Verfügung gestellt.  In Clipper  wird FKZ als 1 Byte langes Cha-
  656. racterfeld bereitgestellt.
  657. Der Parameter RET dient auch zur Übergabe des
  658. Schattenattributes(siehe 6.1.4).
  659.  
  660. Der Parameter  wird weiterhin bei den Funktionen der dynamischen
  661. Attributmodifikation  für  Text,  Rahmen  oder  variable  Felder
  662. (Funktionen  20  bis  22)  als  Übergabeparameter  für  den
  663. neueinzustellenden Attributcode verwendet.
  664.  
  665. Schreibmarke SM
  666.  
  667. Im Übergabeparameter  SM wird  die Schreibmarkenposition  an das
  668. Treiberprogramm UNIF  als fortlaufende  Nummer (beginnend mit 0)
  669. übergeben. Nur zugängliche Felder (Eingabefleder und Menüfelder)
  670. sind  dabei   zu   berücksichtigen.   Die   Positionierung   der
  671. Schreibmarke auf Ausgabefelder ist nicht möglich.
  672.  
  673. Weiterhin wird  nach Rückkehr  vom Treiberprogramm  die aktuelle
  674. Schreibmarkenposition zurückgegeben.
  675.  
  676. Das Feld SM wird in der Standard-Include-Datei als 2 Byte langes
  677. Binärfeld zur  Verfügung gestellt. In Clipper wird SM als 1 Byte
  678. langes Characterfeld bereitgestellt.
  679.  
  680.     Beispiel (Schreibmarke auf 1. zugängliches Feld)
  681.  
  682.       SM = 0
  683.  
  684.     Beispiel (Schreibmarke auf 5. zugängliches Feld)
  685.  
  686.       SM = 4
  687.  
  688. Der  Parameter   wird  darüberhinaus   bei  der   Funktion   der
  689. dynamischen Attributmodifikation  für variable  Felder (Funktion
  690. 22) als Übergabeparameter (fortlaufende Nummer, beginnend mit 0)
  691. für  das  zu  bearbeitende  Feld  verwendet.  Im  Gegensatz  zur
  692. Schreibmarkenpositionierung   sind    hier   Ausgabefelder    zu
  693. berücksichtigen.
  694.  
  695. Formatlayout Daten
  696.  
  697. Im  Übergabeparameter   Daten  wird   das  Formatlayout  an  das
  698. Unterprogramm UNIF  übergeben. UniForm stellt für die Versorgung
  699. des Bereiches  ein entsprechendes INCLUDE- bzw. COPY-Element zur
  700. Verfügung. Das Feld Daten wird in der Standard-Include-Datei als 
  701. 3 Kilobyte langes Characterfeld zur Verfügung gestellt.
  702.  
  703.  
  704. 6.1.1.6 Aufruf Treiberprogramm UNIF
  705.  
  706. Der Unterprogrammaufruf   ist nach erfolgter Parameterversorgung
  707. in Notation des gewählten Compilers vorzunehmen.
  708.  
  709. Detailinformationen entnehmen Sie bitte Punkt 6.2.
  710.  
  711.  
  712. 6.1.1.7 Auswerten Returnfeld
  713.  
  714. Im  Übergabeparameter  RET  wird  nach  jedem  Formataufruf der
  715. Tastenreturncode hinterlegt.  D. h. nach Betätigung einer der u.
  716. g. Tasten(kombinationen)  erhalten Sie  die Steuerung  in Ihrem
  717. Programm zurück.
  718.  
  719. - Tastenretuncodes
  720.  
  721.   ESC      99         |           ENTER  100
  722.                       |
  723.   F1       101        |           SH - F1     111
  724.   F2       102        |           SH - F2     112
  725.   F3       103        |           SH - F3     113
  726.   F4       104        |           SH - F4     114
  727.   F5       105        |           SH - F5     115
  728.   F6       106        |           SH - F6     116
  729.   F7       107        |           SH - F7     117
  730.   F8       108        |           SH - F8     118
  731.   F9       109        |           SH - F9     119
  732.   F10      110        |           SH - F10    120
  733.                       |
  734.   ^ - F1   121        |           ALT - F1    131
  735.   ^ - F2   122        |           ALT - F2    132
  736.   ^ - F3   123        |           ALT - F3    133
  737.   ^ - F4   124        |           ALT - F4    134
  738.   ^ - F5   125        |           ALT - F5    135
  739.   ^ - F6   126        |           ALT - F6    136
  740.   ^ - F7   127        |           ALT - F7    137
  741.   ^ - F8   128        |           ALT - F8    138
  742.   ^ - F9   129        |           ALT - F9    139
  743.   ^ - F10  130        |           ALT - F10   140
  744.                       |
  745.   ALT - 1  141        |           ALT - 6     146
  746.   ALT - 2  142        |           ALT - 7     147
  747.   ALT - 3  143        |           ALT - 8     148
  748.   ALT - 4  144        |           ALT - 9     149
  749.   ALT - 5  145        |           ALT - 10    150
  750.                       |
  751.   ALT - A  151        |           ^ - A       177
  752.   ALT - B  152        |           ^ - B       178
  753.   ALT - C  153        |           ^ - C       179
  754.   ALT - D  154        |           ^ - D       180
  755.   ALT - E  155        |           ^ - E       181
  756.   ALT - F  156        |           ^ - F       182
  757.   ALT - G  157        |           ^ - G       183
  758.   ALT - H  158        |           ^ - H       184
  759.   ALT - I  159        |           ^ - I       185
  760.   ALT - J  160        |           ^ - J       186
  761.   ALT - K  161        |           ^ - K       187
  762.   ALT - L  162        |           ^ - L       188
  763.   ALT - M  163        |           ^ - M       189
  764.   ALT - N  164        |           ^ - N       190
  765.   ALT - O  165        |           ^ - O       191
  766.  
  767.   ALT - P  166        |           ^ - P       192
  768.   ALT - Q  167        |           ^ - Q       193
  769.   ALT - R  168        |           ^ - R       194
  770.   ALT - S  169        |           ^ - S       195
  771.   ALT - T  170        |           ^ - T       196
  772.   ALT - U  171        |           ^ - U       197
  773.   ALT - V  172        |           ^ - V       198
  774.   ALT - W  173        |           ^ - W       199
  775.   ALT - X  174        |
  776.   ALT - Y  175        |
  777.   ALT - Z  176        |
  778.  
  779. Bei Tastenreturncode  99 (ESC)  werden eventuelle Modifikationen
  780. variabler Felder verworfen.
  781.  
  782. Für die  Realisierung sog.  Balkenmenüs über Menüfelder beachten
  783. Sie bitte  folgendes. Bei  Betätigung der Tasten ENTER von einem
  784. Menüfeld aus  (Cursor zeigt  auf Menüfeld)  wird der  Returncode
  785. n+200 zurückgegeben  (n =  Nummer  des  ungeschützten  variablen
  786. Feldes (Eingabefelder  und  markierbare  Felder)  innerhalb  des
  787. aktuellen  Formates).   Bei  der  Betätigung  einer  der  o.  g.
  788. Tasten(Kombinationen)  auf  einem  markierbaren  Feld  wird  der
  789. Tastenreturncode  der  Funktionstaste  zurückgemeldet.  Bei  der
  790. Eingabe von ESC wird 99 zurückgemeldet.
  791.  
  792.  
  793. 6.1.2 Compilieren/ Linken
  794.  
  795. Für das  Compilieren  Ihres  Programmes  stellen  Sie  die  Std-
  796. Include-Datei, die  Include-Dateien für die variablen Felder und
  797. das Formatlayout  bereit. Das  entsprechende Treibermodul ist in
  798. das  Programm   einzubinden.  Detaillierte   Informationen  über
  799. Compiler- und  Linkvorschriften entnehmen  Sie bitte  aus  Ihren
  800. Programmierhandbüchern.
  801.  
  802.  
  803. 6.1.3 Programmausführung
  804.  
  805. Für die Ausführung Ihrer Programme sind neben der eigentlichen
  806. EXE-Datei keine weiteren Komponenten erforderlich.
  807.  
  808.  
  809. 6.1.4 Schattenfunktion
  810.  
  811. Neben der  Rückgabe der  Tastenreturncodes  wird  das  Feld  RET
  812. benutzt um  das Schattenattribut  für die  Ausgabe von
  813. Formatenmit Schatten zu übergeben.
  814.  
  815. Beachten Sie bitte die folgenden Regeln...
  816.  
  817.  Bei RET=0 wird das Format ohne Schatten ausgegeben.
  818.  Bei RET  !=0 wird  das Format mit Schatten mit dem Attributwert
  819.  in RET ausgegeben.
  820.  
  821.  Die Attributwerte  für Monochrom-  bzw. Farbmodus finden Sie im
  822.  Anhang A3 (Vollversion).
  823.  
  824.  Die Schattenfunktion  ist für  Differenzausgaben (FKZ=3)  nicht
  825.  relevant.
  826.  
  827.  Der Schatten  wird am  rechten und  unteren Rand  des  Formates
  828.  angezeigt.
  829.  
  830.  
  831. 6.1.5 Dynamische Attributmodifikation
  832.  
  833. Jedes  Elenent   eines  Formates  ist  in  dem  Bereich  <Daten>
  834. hinterlegt. So sind u. a. die Farbattribute für Text, für Rahmen
  835. und für  alle variablen  Felder in einem Byte im Bereich <Daten>
  836. dargestellt. Das  gleiche gilt für den Feldtyp. Durch Modifizie-
  837. rung dieses  Bytes kann  das entsprechende  Attribut durch einen
  838. einzigen MOVE-Befehl geändert werden.
  839.  
  840. In der  Attribut-Distanzdatei (format.ATT)  werden die Distanzen
  841. zu  den   jeweiligen   Elementen   hinterlegt.   Die   Attribut-
  842. Distanzdatei wird  bei  der  Formatgenerierung  automatisch
  843. fürjedes Format erzeugt.
  844.  
  845. Folgende Distanzen im Bereich <Daten> werden angezeigt...
  846.  
  847.    Text-Farbattribut
  848.    Rahmen-Farbattribut
  849.    Feld-Farbattribut
  850.    Feld-Typ
  851.  
  852. Die Farbattribute  können durch  Veränderung des  Bytewertes mit
  853. den  Werten  0  bis  255  (siehe  Attributwerte  im  Anhang  A3)
  854. modifiziert werden.
  855.  
  856. Der Feldtyp  kann die  Werte <a>  für Ausgabefeld  bzw. <e>  für
  857. Eingabefeld enthalten.  Alle anderen  Zuweisungen sind  ungültig
  858. und führen zu unvorhergesehenen Ergebnissen.
  859.  
  860. Ein Beispiel finden Sie in Kapitel 8.
  861.  
  862.  
  863. 6.2 Ablauf Compilerspezifisch
  864.  
  865. Im folgenden  werden compilerspezifische  Hinweise für  den For-
  866. mataufruf  mit   UniForm   übersichtlich   zusammengefaßt.   Die
  867. Übersicht  zeigt   insbesondere  alle   INCLUDE   Dateien,   die
  868. syntaktischen  Vorschriften  für  den  Aufruf  des  universellen
  869. Treiberprogrammes UNIF sowie Übersetzungs- und Linkvorschriften.
  870.  
  871. Ein  einfaches   Sourcebeispiel  verdeutlicht   schließlich  den
  872. Formateinsatz mit UniForm. In dem Sourcebeispiel wird das Format
  873. "order" am  Bildschirm angezeigt  und das  Programm  nach einer
  874. beliebigen Tasten(kombinations)eingabe  beendet (die Formatdatei
  875. ORDER.BLD finden  Sie auf  Ihren  Produktdisketten).  Das  Sour-
  876. cebeispiel  können   Sie   vom   UniForm-Formatgenerator   durch
  877. Generierung des  Formates ORDER  automatisch generieren lassen.
  878. UniForm erzeugt die Sourcedatei ORDER.SMP (SMP für sample).
  879.  
  880.  
  881. 6.2.1 Ablauf in MASM, MS Quick ASM, Turbo ASM
  882.  
  883. Standard-Include-Datei
  884.  
  885.   UFAS01.MAC
  886.  
  887. Formatspezifische Include-Dateien
  888.  
  889.   <format>.MAC    Include-Datei für variable Felder
  890.  
  891.   Die Formatlayoutanweisungen sind in <format>.MAC enthalten.
  892.   Der Feldname ist A<format>.
  893.  
  894. Unterprogrammaufruf
  895. Speichermodelle Small und Medium
  896.  
  897.   EXTRN  UNIF:NEAR
  898.   PUSH   Offset  FKZ
  899.   PUSH   Offset  FNAME
  900.   PUSH   Offset  feldname
  901.   PUSH   Offset  RETC
  902.   PUSH   Offset  SM
  903.   PUSH   Offset  A<format>
  904.   CALL   UNIF
  905.  
  906. Speichermodelle Compact und Large
  907.  
  908.   EXTRN  UNIF:FAR
  909.   PUSH   Segment FKZ
  910.   PUSH   Offset  FKZ
  911.   PUSH   Segment FNAME
  912.   PUSH   Offset  FNAME
  913.   PUSH   Segment feldname
  914.   PUSH   Offset  feldname
  915.   PUSH   Segment RETC
  916.   PUSH   Offset  RETC
  917.   PUSH   Segment SM
  918.   PUSH   Offset  SM
  919.   PUSH   Segment A<format>
  920.   PUSH   Offset  A<format>
  921.   CALL   UNIF
  922.  
  923. Maussteuerung
  924.  
  925.   EXTRN  MOUSEON:NEAR/FAR
  926.   CALL MOUSEON                     Maus initialisieren
  927.  
  928.   EXTRN  MOUSEOFF:NEAR/FAR
  929.   CALL MOUSEOFF                    Maus wieder ausschalten
  930.  
  931. Compilieren
  932.  
  933.   Bereitstellen der o. g. Include-Dateien
  934.  
  935. Linken
  936.  
  937.   einbinden UFAS01S.OBJ  - Speichermodell Small
  938.   einbinden UFAS01M.OBJ  - Speichermodell Medium
  939.   einbinden UFAS01C.OBJ  - Speichermodell Compact
  940.   einbinden UFAS01L.OBJ  - Speichermodell Large
  941.  
  942. Sourcebeispiel "ORDER.ASM" - Ausgeben Format ORDER
  943.  
  944. Übersetzen:  masm order
  945.              tasm order
  946. Linken:      link order ufas01s (Speichermodell SMALL)
  947. Programmaufruf:    order
  948.  
  949.         DOSSEG
  950. EXTRN   UNIF:NEAR
  951. EXTRN   MOUSEON:NEAR
  952. EXTRN   MOUSEOFF:NEAR
  953.         .MODEL SMALL
  954.         .CODE
  955.         jmp    start
  956. INCLUDE UFAS01.MAC ; Standard-Include-Datei
  957. INCLUDE order.MAC ; Definieren variable Felder aus <order>
  958. format DB 'order ' ; Formatname
  959.  
  960. start:  push  cs
  961.         pop   ds
  962.         push  cs
  963.         pop   es
  964.  
  965.         call  MOUSEON ; Maus initialisieren
  966.         mov   word ptr FKZ,2 ; Funktionskennzeichen
  967.         mov   word ptr SM,0 ; Cursorposition
  968.         mov   word ptr RETC,112 ; Schattenattribut
  969.         lea   bx,FKZ ; push Parameter
  970.         push  bx
  971.         lea   bx,format
  972.         push  bx
  973.         lea   bx,fld0
  974.         push  bx
  975.         lea   bx,RETC
  976.         push  bx
  977.         lea   bx,SM
  978.         push  bx
  979.         lea   bx,Aorder
  980.         push  bx
  981.         call  UNIF ; call UNIF
  982.         add   sp,12 ; stack restaurieren
  983.         call  MOUSEOFF ; Maus ausschalten
  984.         mov   ah,4ch ; Programmende
  985.         mov   al,0
  986.         int   21h
  987.         END
  988.  
  989. Include-Datei für variable Felder ORDER.MAC
  990.  
  991. product DB 20 DUP(020h)
  992. orderdate DB 8 DUP(020h)
  993. nr DB 20 DUP(020h)
  994. EVEN
  995. quantity DD 0
  996. EVEN
  997. price DD 0.0
  998.  
  999. Hinweise
  1000.  
  1001. Bei den  kleinen Datenmodellen  werden die  Übergabeparameter im
  1002. Datensegment erwartet.
  1003.  
  1004. Das Feld RET ist in ASM ein reserviertes Wort. Deshalb heißt der
  1005. Übergabeparameter RET hier RETC.
  1006.  
  1007. Die Zeichen  ALT 0  und ALT  255 sind  in der  Formatgenerierung
  1008. nicht zugelassen.
  1009.  
  1010.  
  1011. 7 Ablauf im Beispiel
  1012.  
  1013. Der Formateinsatz  mit UniForm  wird im  folgenden durch weitere
  1014. Beispiele verdeutlicht.
  1015.  
  1016. Zunächst soll  das einfache  Anwendungsbeispiel  aus  Kapitel  3
  1017. geringfügig erweitert werden.
  1018.  
  1019. Nach der  Erfassung eines  Artikels im  Menü <order> soll in dem
  1020. überlappenden  leeren  Format  <message>  die  Aufnahme  in die
  1021. Datenbank bildlich bestätigt werden. Nach Programmbeendigung mit
  1022. der Funktionstaste  <F10> soll  der gesicherte  Bildschirminhalt
  1023. vor Programmaufruf wieder angezeigt werden.
  1024.  
  1025. Die  Generierung   des  Formates   <order>  ist   in  Kapitel  3
  1026. nachzulesen. Zur  Generierung des  Formates <message> ist einzig
  1027. zu bemerken,  daß es sich hier um ein sog. leeres Format (Format
  1028. ohne variable  Felder) handelt.  Somit  entfällt  der  Verarbei-
  1029. tungsschritt "Feldnamen/ Attribute" bei der Formaterstellung mit
  1030. dem  UniForm   Formatgenerator;   der   Formataufruf   muß   mit
  1031. Funktionskennzeichen FKZ = 4 erfolgen.
  1032.  
  1033. Das o.  g. Beispiel  ist in  diesem Kapitel in allen von UniForm
  1034. unterstützten Compilern  realisiert. Der Dialekt des Sourcecodes
  1035. in den  Listings bezieht  sich jeweils auf eine bestimme Version
  1036. des jeweiligen  Compilers. Etwaige  geringfügige Abweichungen in
  1037. älteren oder  neueren Versionen  entnehmen Sie  bitte aus
  1038. IhrenProgrammierhandbüchern.
  1039.  
  1040. Aus Gründen  der besseren  Lesbarkeit des Sourcecodings wurde in
  1041. den   Beispielen    weitgehend   auf    die    Prinzipien    der
  1042. wohlstrukturierten Programmierung verzichtet.
  1043.  
  1044. Das Sourcecodebeispiel  und die  beiden Formatdateien ORDER.BLD
  1045. und   MESSAGE.BLD   finden   Sie   übrigens   auch   auf   Ihren
  1046. Produktdisketten (siehe  Punkt 4.2,  Programmbeispiel  "order").
  1047. Compiler- und  Linkeranweisungen entnehmen Sie bitte aus Kapitel 6
  1048.  
  1049. Sie können  also das Programmbeispiel auf einfache Art und Weise
  1050. ausprobieren!
  1051.  
  1052. In  der   Vollversion  ist   das  Programmbeispiel  im  Handbuch
  1053. abgedruckt.
  1054.  
  1055.  
  1056. 8 Beispiel für "dynamische Attributmodifikation"
  1057.  
  1058. Durch  Modifiziern   des  Bereiches   <Daten>  haben   Sie   die
  1059. Möglichkeit die  Attribute für  Text, Rahmen und variable Felder
  1060. dynamisch, d. h. während des Programmablaufes zu modifizieren.
  1061. In einem  einfachen Beispiel  wird das  Ablaufprinzip der  o. g.
  1062. Funktion deutlich gemacht.
  1063.  
  1064. Das Format <TESTFMT> wird zunächst in den generierten Attributen
  1065. für Text,  Rahmen und  die beiden  variablen Felder  <fld0>  und
  1066. <fld1>  angezeigt.
  1067.  
  1068. Bei der  zweiten Ausgabe  werden die  Farben der  beiden  Felder
  1069. <fld0> und <fld1> modifiziert.
  1070.  
  1071. Bei der  dritten Ausgabe  wird der  Feldtyp  der  beiden  Felder
  1072. <fld0> und  <fld1> auf <Ausgabefeld> modifiziert. D. h. Sie sind
  1073. für den Benutzer nicht mehr zugänglich.
  1074.  
  1075. Bei der  vierten Ausgabe  werden die  Farben von Text und Rahmen
  1076. modifiziert.
  1077.  
  1078. Bei der  fünften und  letzten Ausgabe  wird das Schattenattribut
  1079. modifiziert.
  1080.  
  1081. Das Sourcecodebeispiel und die Formatdatei <TESTFMT.BLD> finden
  1082. Sie  wiederum  auf  Ihren  Produktdisketten  (siehe  Punkt  4.2,
  1083. Programmbeispiel  "dynamic").   Sie  können   also  auch  dieses
  1084. Programmbeispiel sofort  testen. Compiler- und Linkeranweisungen
  1085. entnehmen Sie bitte aus Kapitel 6.
  1086.  
  1087. In  der   Vollversion  ist   das  Programmbeispiel  im  Handbuch
  1088. abgedruckt.
  1089.  
  1090.  
  1091. 9 Beispiel für "Menüauswahl"
  1092.  
  1093. In  diesem   Beispiel   wird   der   Einsatz   von   Menüfeldern
  1094. demonstriert. Im  Ersten Format  <menu01> werden  die Menüpunkte
  1095. <Functions>  und   <Programend>  zur   Auswahl  angeboten.   Die
  1096. Funktionen   können    ausgewählt   werden   über   Cursor/Maus-
  1097. Positionierung und  Enter oder  durch die  Rechte Maustaste oder
  1098. durch Eingabe  der hervorgehobenen Buchstaben. Im zweiten Format
  1099. <menu02> wird  ein Pull-Down Format angezeigt mit den Funktionen
  1100. <file new,  file  open,  feile  delete  und  program  end>.  Die
  1101. Funktionsauswahl  kann   hier  neben   den  oben   beschriebenen
  1102. Möglichkeiten über  die entsprechende  Funktionstaste ausgewählt
  1103. werden. Im  letzten Format <menu03> wird lediglich eine Funktion
  1104. angedeutet, die durch Auswahl einer der Menüpunkte denkbar wäre.
  1105. Sie kehren mit jeder Eingabe zum ersten Format zurück.
  1106.  
  1107. Das Sourcecodebeispiel  und die  oben beschriebenen Formatdateien
  1108. finden Sie wiederum auf Ihren Produktdisketten (siehe Punkt 4.2,
  1109. Programmbeispiel "menu").
  1110.  
  1111.  
  1112. Anhang A1 - Cursorsteuerung
  1113.  
  1114. Die Cursor- und Maustasten werden im UniForm-Formatgenerator und
  1115. in mit UniForm eingesetzten Formaten wie fogt ausgewertet:
  1116.  
  1117. - Pfeil links   Cursor um 1 Spalte nach links. Bei Feldanfang
  1118.                 springen zu Feldende des vorherigen Feldes.
  1119. - Pfeil rechst  Cursor um 1 Spalte nach rechts. Bei Feldende
  1120.                 springen zu Feldanfang des nächsten Feldes.
  1121.  
  1122. - Home          Cursor auf Feldanfang des aktuellen Feldes.
  1123. - End           Cursor auf Feldende des aktuellen Feldes.
  1124.  
  1125. - Pfeil unten   Cursor auf Feldanfang des nächsten Feldes.
  1126. - Pfeil oben    Cursor auf Feldanfang des vorherigen Feldes.
  1127. - Page Down     Cursor auf Feldanfang des nächsten Feldes
  1128. - Page Up       Cursor auf Feldanfang des vorherigen Feldes.
  1129. - Back Slash    Löschen aktuelle Spalte und Cursor um 1 Zeichen
  1130.                 nach links.
  1131. - Del           Löschen Zeichen an Cursorposition. Das
  1132.                 Füllzeichen am Feldende ist Space. bzw. Null.
  1133.  
  1134. - Ins (Modus)   Einfügen Zeichen an Cursorposition. Das letzte
  1135.                 Zeichen geht verloren.
  1136.  
  1137.  
  1138. - Maustaste links  Cursor an Mausposition.
  1139.  
  1140. - Maustaste rechts Cursor an Mausposition und Rückkehr zum
  1141.                    aufrufenden Programm (Rückgabe ENTER (RET = 100)).
  1142.  
  1143.  
  1144. - Zeichen an Feldende   Cursor auf Feldanfang des nächsten
  1145.                         Feldes.
  1146.  
  1147. - SPACE (NUM-Felder)    Im Vorkammabereich wird SPACE
  1148.                         akzeptiert. Im Nachkommabereich wird SPACE
  1149.                         durch 0 ersetzt.
  1150. An
  1151. Ebnet Software
  1152.  
  1153. D-8000 München 70
  1154. Passauerstrasse 2 b
  1155.  
  1156.  
  1157. REGISTRIERUNG/ BESTELLUNG Softwareprodukt ASM-WINDOW
  1158. ------------------------------------------------------
  1159.  
  1160. Hiermit bestelle(n) ich(wir) das Softwareprodukt ASM-WINDOW
  1161. zum Preis von DM 85.-- zzgl. Versand (DM 4.--).
  1162.  
  1163. Die Bezahlung soll erfolgen:
  1164.  
  1165.    (  ) durch beigefügten Verrechnungsscheck
  1166.    (  ) durch Vorauszahlung auf das nachfolgendes  Konto:
  1167.         Postgiroamt München      
  1168.         BLZ. 700 100 80
  1169.         Konto 418194-800
  1170.    (  ) durch Postnachnahme zuzüglich Versandkosten
  1171.         (  ) in der BRD                 DM  3,--
  1172.         (  ) im Ausland                 DM 10,--
  1173.  
  1174. Die Lieferung soll erfolgen:
  1175.    (  ) im 5.25 Zoll Disketten-Format
  1176.    (  ) im 3.5  Zoll Disketten-Format  
  1177.  
  1178. Die genannten Preise verstehen sich inklusive Mehrwertsteuer.
  1179.  
  1180. Als registrierter Anwender werden Sie über künftige Programm-
  1181. versionen automatisch benachrichtigt. Neue Programm-Versionen
  1182. können im Updateservice zum Vorzugspreis von DM 45.-- bestellt
  1183. werden.
  1184.  
  1185. Anwenderunterstützung (telefonisch/schriftlich) wird ausnahmslos
  1186. für registrierte Anwender geleistet.
  1187.  
  1188. Absender:
  1189.  
  1190.  
  1191.  
  1192.  
  1193.  
  1194. Datum/Unterschrift:
  1195.  
  1196.  
  1197. .............................
  1198.