home *** CD-ROM | disk | FTP | other *** search
/ Vectronix 2 / VECTRONIX2.iso / FILES_07 / ACS.ZIP / ACS / EXTRA.DOC < prev    next >
Text File  |  1992-01-28  |  5KB  |  174 lines

  1. Diese Datei enthält ergänzende Informationen zu ACS. Insbesondere 
  2. Änderungen neuerer Revisions sind hier aufgeführt.
  3.  
  4. Die DR-Object-Ausgabe wird möglicherweise in zukünftigen Version 
  5. entfallen, da der Sinn für nicht mehr gegeben ist. Mit der C-Ausgabe 
  6. kann erheblich flexibler gearbeitet werden. Sollten Sie doch darauf 
  7. bauen, so teilen Sie mir das doch bitte mit. 
  8.  
  9.  
  10. Revision 1.02
  11.  
  12.  
  13. Tips & Tricks
  14. =============
  15.  
  16.  
  17. Wird ein Objektbaum dynamisch verändert, wie z.B. der Desktop, so
  18. sollten alle Objekte sich korrekt im Objektbaum befinden. Nichtbenutzte
  19. Objekte darf man nicht einfach ausklinken. Wird dieses Objekt
  20. aus irgendeinem Grund neu gezeichnet (Deselektieren, ..) ist GEM schwer
  21. beleidigt. Als Lösung bietet sich das HIDETREE-Flag an, oder das
  22. Umketten als Kind eines anderen, nicht sichtbaren Teilbaumes.
  23.  
  24.  
  25.  
  26. Revision 1.01 
  27.  
  28.  
  29. Aob_alias
  30. =========
  31.  
  32.  
  33. Diese vorbereitete 'click'-Routine gibt die Anwahl an das Objekt,
  34. dessen Nummer in 'userp1' steht, weiter. Diese Routine kann benutzt
  35. werden um Checkboxes vom einem Text anwählbar zu machen. Der Text
  36. trägt dann diese 'click'-Routine und ist als TOUCHEXIT gekennzeichnet.
  37.  
  38.  
  39.  
  40. Neue USERDEFs
  41. =============
  42.  
  43.  
  44. Es gibt nun das USERDEF A_pattern. Es erlaubt verschiedene Muster
  45. für Rechtecke zu wählen. Der Parameter 'ub_parm' hat folgende Bedeutung
  46. Siehe auch VDI: v_bar.
  47.  
  48.  
  49.     Bits  0-3        (16)    Farbe
  50.     Bits 16-20        (32)    Musterindex (vsf_style)
  51.     Bit  21            (2)        Rahmen (perimeter)
  52.     Bits 22-23        (4)        0 = FIS_HATCH
  53.                             1 = FIS_PATTERN
  54.                             2,3 = ACS eigen    
  55.  
  56.  
  57. Desweiteren kam A_arrows hinzu. Dieses USERDEF stellt Pfeile und
  58. Linien zur Verfügung. Es kann nicht invertiert werden. Macht keine 
  59. auch besonderen Sinn. Siehe auch VDI: v_pline.
  60.  
  61.  
  62.     Bits  0-3        (16)    Farbe
  63.     Bits 16-18        (8)        Linientyp (vsl_type)
  64.     Bit  19            (2)        0 = 1 Pixel breit
  65.                             1 = 3 Pixel breit
  66.     Bits 20-21        (4)        Endetypus Start (vsl_ends)
  67.     Bits 22-23        (4)        Endetypus Ende (vsl_ends)
  68.     Bits 24-26        (8)        Startposition
  69.     Bits 28-30        (8)        Endeposition    (')
  70.  
  71.  
  72.     Die Positionen 4-7 sind um halbe Zeichenposition(en) nach 
  73.     innen versetzt.
  74.  
  75.     -----------------------------------------
  76.     |1                    0                  3'|
  77.     |    5                4                7'    |
  78.     |                                        |
  79.     |2    6                                6'2'|
  80.     |                                        |
  81.     |    7                4'                5'    |
  82.     |3                    0'                  1'|
  83.     -----------------------------------------
  84.  
  85.  
  86.  
  87. Tips & Tricks
  88. =============
  89.  
  90.  
  91. Wenn dem Basisobjekt das Flag TOUCHEXIT gegeben wird, ohne eine
  92. click-Routine einzutragen, kann kein Zieh-Rechteck aufgezogen werden.
  93. Das ist interessant wenn das Objekt sowie keine ziehbaren Objekte
  94. enthält.
  95.  
  96.  
  97. Werden Textfelder programmatisch verändert, empfiehlt sich der
  98. Objekt-Typ G_BOXTEXT mit und ohne Rahmen. Im Gegensatz zu F_TEXT
  99. wird auch der Hintergrund neu gezeichnet!
  100.  
  101.  
  102. Mauszustände
  103. ============
  104.  
  105. Bei Aufruf von A_dialog und Ame_popup wird die Maus immer als Zeiger
  106. dargestellt, egal welche Form aktiv war und ob die Maus 'busy' war. 
  107. Nach Rückkehr wird die ursprüngliche Mausform und 'busy'-Zustand 
  108. eingenommen. Ein 'hide'-Zustand wird allerdings immer beachtet!
  109.  
  110.  
  111. Positionen
  112. ==========
  113.  
  114. Nun können Positionen direkt überprüft und modifiziert werden.
  115. Bitte beachten Sie, da₧ Pixelwerte vorzeichenbehaftet sind. Durch
  116. unsinnige (negative) Werte werden Objekte unselektierbar! Also 
  117. bitte nur sehr vorsichtig einsetzen.
  118.  
  119.  
  120. ROOTWINDOW
  121. ==========
  122.  
  123. Es wurde ein weiteres Beispiel aufgenommen, welches die Installation
  124. eines eigenen Rootfenster zeigt.
  125.  
  126. Neu an dieser Version ist die Möglichkeit, keinen Desktop (Fensterinneres)
  127. zu bestimmen. In der vorigen Revision führte dies zum Absturz.
  128.  
  129. Damit können Applikationen entwickelt werden, die sich konventionell 
  130. verhalten; allerdings auch in Ihren Fähigheiten. Ich empfehle die
  131. Verwendung des Generischen Desktops.
  132.  
  133.  
  134. Awi_obchange (Awindow *window, int obnr, int new_state) [window-> obchange]
  135. ===========================================================================
  136.  
  137. Dieser Aufruf verhält sich nun etwas anderst. Bislang wurde, wenn
  138. 'new_state' gleich 'ob_state' war, alles unter dem Objekt obnr
  139. neu gezeichnet, also ab Objekt 0. Dies ist zwar sehr sicher, kostet
  140. aber relativ viel Zeit.
  141.  
  142. Nun zeichnet dieser Aufruf nur ab obnr neu. Das ist sehr viel schneller.
  143. In den meisten Fällen ist nichts am Programm zu ändern.
  144.  
  145. Falls veränderte, in der Länge variable Texte damit aufzufrischen sind,
  146. sollte der OBJECT-Type G_BOXTEXT verwendet werden, der Rahmen kann ja
  147. abgeschaltet werden.
  148.  
  149. Problematisch wird es wenn z.B. die Rahmendicke verkleinert wurde. Der
  150. ehemals grö₧ere Rahmen wird nicht weggenommen. Für diesen Fall gibt es 
  151. einen neuen Aufruf 'Awi_obredraw', der die alte Funktionalität bietet.
  152.  
  153.  
  154.  
  155. Awi_obredraw (Awindow *window, int obnr)
  156. ========================================
  157.  
  158. Dieser Aufruf zeichnet alles unter dem Objekt obnr neu. Dazu wird der
  159. Aufruf (window-> redraw) verwendet. Der Aufruf ist langsamer, aber
  160. sehr zuverlässig im Auffrischen, als Awi_obchange.
  161.  
  162. Es können auch verkleinerte Rahmen korrekt aufgefrischt werden. 
  163. Insbesondere für versteckte Objekte kommt dieser Aufruf zu Einsatz.
  164. Wurde das Objekt obnr versteckt kann Awi_obchange nichts zeichnen. 
  165. Awi_obredraw frischt den Bereich auf, wo sich zuvor das Objekt befand.
  166.  
  167.  
  168. A_dialog
  169. ========
  170.  
  171. Die Variable 'dia_abort' erlaubt den Dialog nach Aufruf durch eine
  172. 'click'-Routine zu beenden. Dazu ist die Variable auf TRUE zu setzen.
  173.  
  174.