home *** CD-ROM | disk | FTP | other *** search
/ Computer Club Elmshorn Atari PD / CCE_PD.iso / pc / 0600 / CCE_0632.ZIP / CCE_0632 / GOBJ_111.ZIP / GOBJECTS.111 / DOKU / GOBJECTS.TXT next >
Text File  |  1994-03-26  |  23KB  |  578 lines

  1.      ObjectGEM-Einführung & Dokumentation
  2.           Version 1.11 vom 26.03.1994
  3.  
  4. Copyright (c)1992-94 by Softdesign Computer Software
  5.                written by Thomas Much
  6.  
  7.  
  8. ACHTUNG: Diese Dokumentation ist z.Z. noch nicht vollständig!
  9.          Trotzdem dürfte ObjectGEM bereits jetzt für etwas
  10.          erfahrenere Programmierer eine große Hilfe darstellen.
  11.          Die komplette Anleitung wird demnächst als Update
  12.          erscheinen.
  13. WICHTIG: Die Online-Hilfe ist mittlerweile komplett. Eine
  14.          Übersicht erhält man, wenn man nach "GObjects" oder
  15.          "ObjectGEM" sucht.
  16.  
  17.  
  18. Inhaltsverzeichnis
  19. ------------------
  20.  
  21. I Einleitung
  22.  
  23.     Willkommen bei ObjectGEM
  24.     Shareware und Registrierung
  25.     Installation: Unit und Online-Hilfe
  26.     Hotline und Updates
  27.  
  28.  
  29. II Schritt für Schritt durch GEM - Eine Einführung in ObjectGEM
  30.  
  31.     Schritt 1:  Eine Minimalanwendung
  32.     Schritt 2:  Text im Fenster ausgeben
  33.     Schritt 3:  Linien im Fenster zeichnen
  34.     Schritt 4:  Die Menüleiste
  35.     Schritt 5:  (Fenster-)Dialoge
  36.     Schritt 6:  Grafik anzeigen (Kollektionen)
  37.     Schritt 7:  Laden & Speichern
  38.     Schritt 8:  Eingaben überprüfen (Validator-Objekte)
  39.     Schritt 9:  Ein paar kleine Verbesserungen
  40.     Schritt 10: Fenster rollen (TScroller)
  41.     Schritt 11: Zeichnen optimieren
  42.     Schritt 12: Profiles (INF-Dateien)
  43.  
  44.  
  45. III ObjectGEM-Übersicht
  46.  
  47.     Allgemeine Programmierrichtlinien
  48.     Wichtige Unterschiede zu ObjectWindows
  49.  
  50.  
  51. IV Anhang
  52.  
  53.     Geplante Erweiterungen
  54.     Anwenderprofil
  55.  
  56.  
  57.  
  58. -----------------------------------------------------------------------
  59.  
  60. TEIL I - Einleitung
  61.  
  62. WILLKOMMEN BEI OBJECTGEM
  63.  
  64. Auf dem Atari ST/STE/TT/Falcon bricht ein neues Zeitalter
  65. des Software-Engineering an! Aber sehen Sie selbst...
  66.  
  67. ObjectGEM ist eine Sammlung von Units für PurePascal, mit der
  68. recht einfach komplexe GEM-Programme erstellt werden können.
  69. Durch die Ähnlichkeit zu ObjectWindows unter Borland Pascal 7.0
  70. können die dort erstellten Programme leichter portiert werden,
  71. und wer ObjectWindows programmieren kann, wird es auch mit
  72. ObjectGEM nicht schwer haben. Aber auch alle anderen werden
  73. in ObjectGEM eine professionelle und schnelle Hilfe finden.
  74.  
  75. Mit ObjectGEM wird es also möglich, daß alle Programme, die
  76. z.Z. auf GEM verzichten, weil sie z.B. nur irgendwelche
  77. Statusausgaben machen, korrekt und mit nur geringem Mehr-
  78. aufwand unter GEM implementiert werden (z.B. auf der
  79. Grundlage von HELLO.PAS). Außerdem können Dialoge mit
  80. allen State-of-the-Art-Buttons etc. versehen werden,
  81. der Rest (Verwaltung, Redraw, Auswertung etc.) geschieht
  82. dann automatisch!
  83.  
  84. Wem die Größe von ObjectGEM nicht paßt, der möge die Tatsache
  85. bedenken, daß objektorientierte Programmierung eigentlich noch
  86. nie auf den Speicherbedarf geachtet hat (das scheint in der
  87. Natur der Sache zu liegen...). Dafür ist der Funktionsumfang
  88. aber beträchtlich, denn selbst das kleinste ObjectGEM-Programm
  89. MINIMAL.PAS weiß bereits, wie ein komplettes GEM-Fenster
  90. zu funktionieren hat (incl. <Control>+<F>,+<U>,+<Q> etc.).
  91. Außerdem kommt es in der heutigen Zeit mehr darauf an, in
  92. möglichst kurzer Zeit Programme zu schreiben, die leicht
  93. zu bedienen sind, sicher laufen und gut erweitert bzw.
  94. gewartet werden können; der Speicherbedarf tritt dabei
  95. zunehmend in den Hintergrund. Trotzdem belegt ObjectGEM
  96. immer nur soviel Speicher wie gerade nötig, da so ziemlich
  97. alles dynamisch verwaltet wird. UND AUSSERDEM: Wer einmal
  98. mit ObjectGEM angefangen hat, wird bestimmt nicht so schnell
  99. wieder damit aufhören!
  100.  
  101. ObjectGEM ist an neuere AES-Versionen (4.x) und an MultiTOS an-
  102. gepaßt, d.h. unter MultiTOS ist es z.B. möglich, Dialoge im Hinter-
  103. grund zu _bedienen_ (Buttons anklicken, Edit-Cursor mit der Maus
  104. verschieben etc., siehe "cs_WorkBackground")!
  105.  
  106. Diese Anleitung ist noch nicht komplett... Im Moment sei deshalb
  107. noch auf das "ObjectWindows-Programmierhandbuch" von Borland Pascal
  108. verwiesen, in dem man die Ideen, die auch hinter ObjectGEM stecken,
  109. nachlesen kann. Teilweise kann das dort beschriebene sogar direkt
  110. übernommen werden.
  111.  
  112. Und wen es interessiert: Ein Test von ObjectGEM 1.00 findet sich
  113. im ST Magazin 7/93, S.22 ff.!
  114.  
  115. Nun aber genug der Vorrede, viel Spaß und Erfolg mit ObjectGEM!
  116.  
  117.                      Thomas Much, Karlsruhe im März 1994
  118.                      "Möge die OOP mit Euch sein!"
  119.  
  120.  
  121.  
  122. SHAREWARE UND REGISTRIERUNG
  123.  
  124. ObjectGEM ist ein Shareware-Produkt. Das Programmpaket darf
  125. beliebig weitergegeben werden, sofern die Units (d.h. die Quell-
  126. texte) mit den dazugehörigen Dateien (Beispielprogramme, Dokumen-
  127. tation etc.) _zusammen_ weitergegeben wird. Jeder kann dann in
  128. Ruhe ein bißchen mit ObjectGEM herumprobieren. Wer allerdings
  129. länger mit ObjectGEM programmiert (egal, ob die Programme ver-
  130. öffentlicht werden oder nicht), muß sich registrieren lassen.
  131.  
  132. Die Registrierung kostet *** DM 50,-- ***. Das ist - im Vergleich
  133. zu kommerziell angebotenen Bibliotheken - nicht sehr viel. Trotzdem
  134. dürfen Programme, die mit einer registrierten ObjectGEM-Version
  135. erstellt wurden, ohne etwaige Lizenzgebühren weitergegeben, ver-
  136. kauft etc. werden.
  137.  
  138. Überweisen Sie dazu DM 50,-- auf das Konto
  139.  
  140.     Thomas Much, Sparkasse Karlsruhe, Kto. 935 30 95,
  141.     BLZ 660 501 01 (Ihre ADRESSE nicht vergessen!!!)
  142.  
  143. oder schicken Sie einen Verrechnungsscheck über diesen Betrag an
  144.  
  145.     Softdesign Computer Software
  146.     c/o Thomas Much, Gerwigstraße 46, 76131 Karlsruhe
  147.  
  148. Sie können den Betrag auch auf folgendes Konto überweisen:
  149.  
  150.     Thomas Much, Postgiroamt Karlsruhe, Kto. 314881-753,
  151.                                                                             BLZ 660 100 75
  152.  
  153. Dann muß allerdings mit z.Z. bis zu vier Wochen Wartezeit ge-
  154. rechnet werden (die Post...). WICHTIG: Wenn Sie einen Scheck aus
  155. dem Ausland schicken und diesen nicht in DM ausstellen, berechnen
  156. Sie bitte DM 8,-- extra! Wenn Sie aus dem Ausland überweisen,
  157. machen Sie dies bitte so, daß der Empfänger keine zusätzlichen
  158. Gebühren zahlen muß. Danke!
  159.  
  160. Sie erhalten dann umgehend die aktuelle Version - es sei denn,
  161. Sie geben bei Ihrer Registrierung die Versionsnummer der Ihnen
  162. vorliegenden ObjectGEM-Unit an; ist diese Version noch aktuell,
  163. erhalten Sie erst dann eine Disk zugeschickt, wenn eine neue
  164. Version veröffentlicht wird (wer also auf jeden Fall und sofort
  165. eine Disk bekommen möchte, sollte bei seiner Registrierung keine
  166. Versionsnummer angeben...). Außerdem haben Sie dann die Möglich-
  167. keit, jederzeit mit einer formatierten 3,5" Diskette und einem
  168. frankierten und adressierten Rückumschlag ein evtl. vorhandenes
  169. ObjectGEM-Update direkt beim Autor (Adresse s.u.) zu bekommen.
  170. Kosten wird dies nur dann etwas, wenn der Registrierpreis
  171. steigen sollte (das wird der Fall sein, falls es einmal ein
  172. gedrucktes Handbuch gibt... keine Angst, mehr als DM 10,--
  173. Unkostenbeitrag - wenn überhaupt -  werden es sicher nicht).
  174. Die neueste Version ist auch per Modem über die Maus KA zu
  175. beziehen (und vermutlich auch in einigen anderen Mailboxen
  176. erhältlich).
  177.  
  178.  Der Vertrieb über PD-Versender, Mailboxen, Diskettenzeit-
  179.  schriften etc. ist erlaubt und ausdrücklich _erwünscht_!
  180.  Dann möge man sich aber bitte um die aktuelle Version
  181.  bemühen.
  182.  ACHTUNG: Zusammen mit ObjectGEM darf der VDI-Enhancer weiter-
  183.  gegeben werden. PD-Versender müssen vor der Weitergabe aber
  184.  erst prüfen, ob sie die entsprechenden Bedingungen erfüllen.
  185.  Ist dies nicht der Fall, müssen sie den Enhancer aus dem
  186.  ObjectGEM-Paket entfernen!
  187.  
  188. Da ObjectGEM nun mit dem _vollständigen_ Quelltext ausgeliefert
  189. wird, hat die Shareware-Version keinerlei Einschränkungen mehr.
  190. Ich hoffe aber trotzdem, daß sich dies nicht negativ auf die
  191. Registrierungsmoral auswirkt - ich würde mich wirklich freuen,
  192. wenn alle diejenigen, die sich bisher wegen PP-Kompatibilitäts-
  193. problemen oder dem fehlenden Quelltext nicht registrieren lassen
  194. wollten (dies wurde mir von _sehr_ vielen Leuten mitgeteilt...),
  195. nun die Weiterentwicklung finanziell unterstützen würden.
  196. WICHTIG: Wer ObjectGEM mehr als nur zu Testzwecken einsetzt
  197. und sich nicht registrieren läßt, verwendet eine RAUBKOPIE!!!
  198.  
  199.  
  200.  
  201. INSTALLATION: UNIT UND ONLINE-HILFE
  202.  
  203. Die Installation sollte keine großen Probleme bereiten. Kopieren
  204. Sie einfach alle Pascal-Dateien (*.PAS) in Ihr Unit-Verzeichnis
  205. (dort, wo auch TOS.PPU, GEM.PPU etc. stehen) bzw. in das Verzeich-
  206. nis, in dem Sie sonst die Quelltexte Ihrer Units ablegen und
  207. GOBJECTS.HLP in das Help-Verzeichnis (dort sollten auch PP.HLP
  208. etc. zu finden sein). Fertig!
  209. Die Units werden nun wie gewohnt mit der uses-Klausel eingebunden.
  210. Wenn Sie Ihr erstes ObjectGEM-Programm compilieren, werden dann
  211. zunächst alle ObjectGEM-Units erzeugt (das dauert etwas).
  212. Um in die Übersicht der Online-Hilfe zu gelangen, suchen Sie
  213. unter "Help - Help..." am besten nach "ObjectGEM" oder "GObjects".
  214. Ansonsten bringen Sie den Cursor auf eine fragliche Konstante
  215. oder Methode und drücken <Help>, woraufhin eine Erklärung dazu
  216. erscheinen sollte. Dabei ist es egal, ob Sie z.B. nach "Style",
  217. "Attr.Style" etc. suchen - wenn es mehrere Möglichkeiten gibt,
  218. erhalten Sie ein Auswahlmenü.
  219. Wenn Sie meinen, einen Fehler in der Online-Hilfe gefunden zu
  220. haben (falscher oder fehlender Verweis, falsche oder nicht aus-
  221. reichende Beschreibung), setzen Sie sich bitte mit mir (dem
  222. Autor) in Verbindung. Danke.
  223.  
  224.  
  225.  
  226. HOTLINE UND UPDATES
  227.  
  228. Falls Probleme mit oder Fragen zu ObjectGEM auftauchen sollten,
  229. können Sie dies dem Autor direkt mitteilen. Bitte benutzen Sie
  230. den telefonischen Weg nur in dringenden Fällen oder bei kurzen
  231. Fragen. Wenn Sie ausführlichere Antworten wünschen, schicken Sie
  232. bitte einen Brief mit folgenden zusätzlichen Angaben:
  233.  
  234.     - ObjectGEM-Version
  235.     - PurePascal-Version bzw. -Datum
  236.     - Rechner, Speicherausbau, Grafikkarte
  237.     - TOS-Version
  238.  
  239. (Übrigens: Da ObjectGEM Shareware ist, ist bei solchen Anfragen
  240.  gegen beiliegendes Rückporto nichts einzuwenden...)
  241.  
  242.     Softdesign Computer Software
  243.     c/o Thomas Much, Gerwigstraße 46, 76131 Karlsruhe
  244.     Tel. (0721) 62 28 41   (am besten Mo-So zwischen 19 und 22 Uhr,
  245.                                                     sonst Anrufbeantworter)
  246.  
  247. Am liebsten werden natürlich Anfragen von registrierten ObjectGEM-
  248. Anwendern beantwortet, aber falls grundsätzliche Fragen bestehen,
  249. haben auch potentielle Käufer eine Chance ;-)
  250.  
  251. Als registrierter Anwender haben Sie außerdem die Möglichkeit,
  252. Updates (die alle paar Wochen erscheinen) durch Einsenden einer
  253. formatierten 3,5"-Diskette und eines frankierten und adressierten
  254. Rückumschlags zu erhalten. Wenn Sie dies "präventiv" machen (d.h.
  255. am besten sofort wieder nach Erhalt eines Updates), bekommen Sie
  256. das nächste Update zugeschickt, sobald es verfügbar ist. Und wenn
  257. Sie sowieso schon dabei sind, eine Update-Diskette einzuschicken,
  258. wäre es nett, wenn Sie dann auch das Anwenderprofil im Anhang
  259. ausdrucken, ausfüllen und mitschicken könnten (besten Dank im
  260. voraus!).
  261. Wer ein Modem besitzt, kann sich natürlich die neuesten Versionen
  262. selbst saugen (und kann damit auf die Disketten verzichten). Neue
  263. Versionen sind zuerst in der Maus KA, MTK und HL verfügbar. Das
  264. Anwenderprofil kann dann auch an die folgende EMail-Adresse
  265. geschickt werden:
  266.  
  267.                     Internet:  Thomas_Much@KA2.MAUS.DE
  268.                     MausNet:   Thomas Much @ KA2
  269.  
  270.  
  271.  
  272. -----------------------------------------------------------------------
  273.  
  274. TEIL III - ObjectGEM-Übersicht
  275.  
  276. ALLGEMEINE PROGRAMMIERRICHTLINIEN
  277.  
  278. Beim Einbinden der ObjectGEM-Units muß darauf geachtet werden, daß
  279. diese immer als _letzte_ eingebunden werden, allerdings noch vor
  280. auf ObjectGEM zugreifenden Units. Die Reihenfolge sollte dabei immer
  281. lauten (abgesehen von evtl. nicht benötigten Units): Objects, OTypes,
  282. OProcs, OWindows, OValidat, ODialogs, OStdDlgs, OStdWnds.
  283.  
  284. Das höherwertige Byte von ob_type (AESOBJECT) darf unter ObjectGEM
  285. weder verwendet noch verändert werden! Abgesehen davon, daß es
  286. eine Zeit lang unter MultiTOS Probleme mit solchen Programmen
  287. gegeben hat, benötigt ObjectGEM dieses Byte für interne Zwecke.
  288. Durch den objektorientierten Ansatz und die Schnittstellenobjekte
  289. sollte die Verwendung dieses Bytes allerdings auch nicht nötig
  290. sein.
  291.  
  292. In den Dialogen sollte so oft wie möglich die Bubble-Help unter-
  293. stützt werden (siehe TControl). Ein Hilfesystem bringt nur dann
  294. etwas, wenn es konsequent eingesetzt wird.
  295.  
  296. Für viele Fenster-Routinen etc. stellt ObjectGEM "neue" Methoden
  297. zur Verfügung, die statt der alten verwendet werden sollten
  298. (bzw. _müssen_); z.B. muß statt wind_calc nun die TWindow-
  299. Methode WindCalc aufgerufen werden. Dadurch ist es sauber
  300. geschriebenen Programmen dann egal, ob z.B. noch eine ToolBar
  301. oder eine Menüleiste im Fenster installiert wird, da ObjectGEM
  302. nun für die Verwaltung des Work-Bereichs etc. zuständig ist.
  303.  
  304.     alte Funktion                                        "neue" Methode
  305.     -------------                                        --------------
  306.     evnt_timer(1,0)                 appl_yield
  307.     form_alert                                            TApplication.Alert
  308.     form_dial(FMD_FINISH,... bzw.        TWindow.ForceRedraw bzw.
  309.         Neuzeichnen des Fensters                TWindow.WMRedraw bzw.
  310.                                                                         TApplication.InvalidateRect
  311.         Neuzeichnen des Desktops                TApplication.DeskRedraw
  312.     form_do                                                    TApplication.ExecDialog bzw.
  313.                                                                         besser TDialog verwenden! bzw.
  314.         Popup-Menüs                                            TApplication.Popup
  315.   fsel_input bzw.                                    FileSelect
  316.   fsel_exinput
  317.   GetFreeString                                        TApplication.GetFString
  318.   graf_mouse                      TWindow.SetCursor
  319.   graf_mouse(ARROW,...            ArrowMouse
  320.   graf_mouse(BUSYBEE,...          BusyMouse bzw.
  321.                                     SliceMouse, SliceMouseNext
  322.   graf_mouse(M_OFF,...            HideMouse
  323.   graf_mouse(M_ON,...             ShowMouse
  324.     menu_bar                                                TApplication.LoadMenu bzw.
  325.                                                                         TApplication.DrawMenu bzw.
  326.                                                                         TApplication.FreeMenu
  327.     objc_change bzw.                                SetSate,GetState, bzw.
  328.         Ändern des Objektstatus                Enable, Disable bzw.
  329.                                                                     SetText,GetText bzw.
  330.                                                                     SetCheck,GetCheck bzw.
  331.                                                                     Check, Uncheck bzw.
  332.                                                                     Toggle, Gray
  333.     rsrc_free                                                TApplication.FreeResource
  334.     rsrc_gaddr                                            TApplication.GetAddr bzw.
  335.                                                                         TApplication.GetFImagePtr bzw.
  336.                                                                         TApplication.GetFStringPtr
  337.     rsrc_load                                                TApplication.LoadResource bzw.
  338.                                                                         TApplication.InitResource
  339.     wind_calc                                                TWindow.WindCalc
  340.     wind_close                                            TWindow.CloseWindow
  341.     wind_create                                            TWindow.Create
  342.     wind_delete                                            TWindow.Destroy
  343.     wind_get(x,WF_CURRXYWH,...            TWindow.GetCurr
  344.     wind_get(x,WF_FIRSTXYWH,...     TWindow.FirstWorkRect
  345.     wind_get(x,WF_FULLXYWH,...            TWindow.GetFull
  346.     wind_get(x,WF_NEXTXYWH,...      TWindow.NextWorkRect
  347.     wind_get(x,WF_WORKXYWH,...            TWindow.GetWork
  348.     wind_get(0,WF_WORKXYWH,...      GetDesk
  349.     wind_open                                                TWindow.OpenWindow
  350.     wind_set(x,WF_CURRXYWH,...            TWindow.SetCurr bzw.
  351.                                                                         TWindow.SetWork bzw.
  352.                                                                         TWindow.FullSize
  353.     wind_set(x,WF_INFO,... bzw.            TWindow.SetSubTitle
  354.         WindSetInfo
  355.     wind_set(x,WF_NAME,... bzw.            TWindow.SetTitle
  356.         WindSetTitle
  357.     wind_set(0,WF_NEWDESK,...                TApplication.InstallDesktop bzw.
  358.                                                                         TApplication.RemoveDesktop
  359.     wind_set(x,WF_TOOLBAR,...       TWindow.LoadToolbar
  360.     wind_set(x,WF_TOP,...                        TWindow.Top
  361.   Programm verlassen                            TApplication.Quit
  362.                                                                         (geschieht, wenn nicht anders
  363.                                                                          angegeben, beim Schließen eines
  364.                                                                          Fensters automatisch, siehe
  365.                                                                          Beispielprogramme)
  366.  
  367.  
  368. ObjectGEM unterstützt neue, zu BP 7.0 kompatible Runtime-Errors:
  369.  
  370.     Fehler-Nr  Bedeutung
  371.     ---------  ---------
  372.         211      Aufruf einer abstrakten Methode
  373.                  ("Call to abstract method")
  374.                  Dieser Fehler wird normalerweise von der Prozedur
  375.                  Abstract ausgelöst und zeigt an, daß sie einen
  376.                  abstrakten Objekttyp nicht abgeleitet und die
  377.                  entsprechenden Methoden überschrieben haben;
  378.                  TSortedCollection ist ein Beispiel dafür
  379.         213      Kollektion-Index außerhalb des gültigen Bereichs
  380.                  ("Index range error")
  381.                  Einer TCollection-Methode wurde ein ungültiger
  382.                  Index übergeben (d.h. zu klein/groß).
  383.         214      Kollektion-Überlauf
  384.                  ("Collection overflow")
  385.                  Die Kollektion kann kein neues Element mehr
  386.                  aufnehmen, d.h. der Speicher ist voll.
  387.  
  388.  
  389. Alle mit ObjectGEM verwendeten Resourcen sollten wie folgt
  390. sortiert sein (eine entsprechende Option sollte in jedem RCS
  391. zu finden sein):
  392.                                     "1 2 3
  393.                                      4 5 6"
  394.  
  395.  
  396. Im globalen Record GP stehen die aktuellen, für ObjectGEM
  397. gültigen VDI-Attribute, die auch von Programmen genutzt werden
  398. können. Es ist allerdings nicht sicher, daß dieser Record "bis
  399. in alle Ewigkeit" unterstützt wird. Es existiert deshalb zwar
  400. die Routine UpdateGPValues; Programme sollten nach Möglichkeit
  401. aber den Zugriff auf GP vermeiden (im Gegensatz zum bisher
  402. Dokumentierten)!!!
  403.  
  404.  
  405.  
  406. WICHTIGE UNTERSCHIEDE ZU OBJECTWINDOWS
  407.  
  408. ObjectGEM setzt die Ideen von ObjectWindows für BorlandPascal (beides
  409. von Borland) unter Windows (von Microsoft) für das Atari-GEM um. Ab-
  410. gesehen von offensichtlichen Unterschieden (z.B. beim Event-Handling)
  411. gibt es aber auch noch andere, die hier besprochen werden sollen.
  412.  
  413. In ObjectGEM sind die meisten Methoden virtuell, wodurch es besser
  414. möglich sein sollte, in den Programmablauf - wenn nötig - einzugreifen.
  415.  
  416. Außerdem wird in ObjectGEM recht wenig vom Typ PChar Gebrauch
  417. gemacht. Dies dient zum einen zur einfacheren Programmierung
  418. (normale Strings reichen meistens aus), zum anderen gab (und gibt)
  419. es offensichtlich Probleme mit den nullterminierten Strings und
  420. der zugehörigen Unit.
  421.  
  422. Im folgenden sind Routinen aufgelistet, die zwar nicht 100%ig
  423. kompatibel, aber zumindest recht ähnlich sind:
  424.  
  425.     ObjectWindows/Windows           ObjectGEM
  426.     ---------------------           ---------
  427.     BringWindowToTop                TWindow.Top
  428.     CheckDlgButton                  SetCheck
  429.     GetActiveWindow                 TApplication.GetPTopWindow
  430.     GetClientRect                   TWindow.GetWork
  431.     GetDesktopWindow                DESK
  432.     GetVersion                      GEMVersion bzw.
  433.                                     MiNTVersion bzw.
  434.                                     TOSVersion
  435.   GetWindowRect                   TWindow.GetCurr
  436.   IntersectRect                   rc_intersect
  437.   MapVirtualKey                   MapKey
  438.   MessageBox                      TApplication.Alert
  439.   PostQuitMessage                 TApplication.Quit
  440.   Yield                           appl_yield
  441.  
  442.  
  443.  
  444. -----------------------------------------------------------------------
  445.  
  446. TEIL IV - Anhang
  447.  
  448. GEPLANTE ERWEITERUNGEN
  449.  
  450. - ws_ex_AppModal (siehe Online-Hilfe)
  451. - ICFS-Iconification mit <Shift>
  452. - Objekte TListBox, TComboBox
  453.   (wie sie unter Windows bzw. ObjectWindows existieren)
  454. - Pull-Down-Menüs in Fenstern
  455. - Objekte TTextWindow, TEditWindow, THelpWindow
  456. - nicht-modale Datei-, Font- und Farbauswahl-Dialoge
  457. - Objekte TIcon, TScrap, TDesktop, TBitmapButton
  458. - Beschleunigung der Profile-Funktionen
  459. - Routinen zum Versenden von Daten per XAcc
  460. - Implementierung von mind. AVSendKey
  461. - Routinen für Drag&Drop-Initiierung bzw. -'ARGS'-Auswertung
  462. - BorlandPascal-kompatible Streams
  463. - Popup-Menüs, die zur Laufzeit geändert werden können
  464. - Bildlaufleisten mit Realtime-Update
  465. - Timer-Events für Fenster
  466. - erweiterte Alertboxen (nicht-modal)
  467. - durch neue Methoden wird TEdit kompatibler zum ObjectWindows-
  468.   Vorbild werden; außerdem wird es Cut, Copy & Paste auf und
  469.   vom Klemmbrett geben (optional)
  470. - Accessories werden auch eine Menüleiste und einen eigenen
  471.   Desktop verwenden können (innerhalb eines Fensters)
  472. - neues Objekt TPrinter (o.ä.), mit dem z.B. ein GDOS-Drucker
  473.   einfacher angesteuert werden kann
  474. - neue Resource-Verwaltung: jedes Fenster kann eine eigene
  475.   RSC-Datei laden, außerdem gibt es eine globale Resource
  476. - zweite virtuelle VDI-Workstation _nur_ für interne Zwecke
  477. - das Anlegen eines Cookies wird verschwinden
  478. - UpdateGPValues und der Record GP werden verschwinden (!)
  479. - es wird ein Zusatzprogramm geben ("GEMWizard"), mit dem
  480.   das Grundgerüst eines ObjectGEM-Programms sehr bequem mit
  481.   ein paar Mausklicks erzeugt werden kann
  482.  
  483.  
  484.  
  485. ANWENDERPROFIL
  486.  
  487. Wenn Sie registrierter Anwender sind, wäre es schön, wenn Sie den
  488. folgenden Fragebogen ausdrucken, ausfüllen und zurückschicken könn-
  489. ten, damit ObjectGEM weiter verbessert und angepaßt werden kann!
  490.  
  491.  
  492. ------schnipp-----------------------------------------------------
  493.  
  494. Name:              _______________________________________________
  495. Anschrift:         _______________________________________________
  496. ObjectGEM-Version: __________
  497. PurePascal-Datum:  __________
  498.  
  499.  
  500. 1. Mit welchem Rechner arbeiten Sie?
  501.  
  502. [ ] 1040ST oder kleiner  [ ] Mega ST  [ ] 1040 STE  [ ] Mega STE
  503. [ ] Falcon030            [ ] TT       [ ] STacy     [ ] ST Book
  504.  
  505.  
  506. 2. Welches TOS benutzen Sie?
  507.  
  508. [ ] 1.00  [ ] 1.02  [ ] 1.04  [ ] 1.06  [ ] 1.62  [ ] 2.05  [ ] 2.06
  509. [ ] 3.00  [ ] 3.01  [ ] 3.05  [ ] 3.06  [ ] 4.00  [ ] 4.01  [ ] 4.02
  510. [ ] 4.04  [ ] 4.92
  511. [ ] MultiTOS (Version:      )           [ ] MultiGEM        [ ] Mag!X
  512. [ ] MiNT ohne MultiTOS (Version:      )
  513. [ ] Andere TOS-Version bzw. anderes TOS (z.B. KAOS):
  514.  
  515.  
  516. 3. Betriebssystemerweiterungen
  517.  
  518. [ ] NVDI  [ ] SpeedoGDOS  [ ] "normales" GDOS  [ ] anderes GDOS:
  519. [ ] Gemini (Version:   )  [ ] Ease
  520. [ ] MetaDOS
  521. [ ] Netzwerk:
  522. [ ] Sonstiges:
  523.  
  524.  
  525. 4. Arbeitsspeicher
  526.  
  527. [ ] bis 1MB  [ ] 1,5 bis 2MB  [ ] 2,5 bis 4MB     [ ] mehr:       MB
  528. (davon ST-RAM:          TT-RAM:        )
  529.  
  530.  
  531. 5. Monitor
  532.  
  533. [ ] SM124, SM144 o.ä.  [ ] Farbmonitor  [ ] Multiscan-Monitor
  534. [ ] Großbildschirm
  535. Sonstiges (z.B. OverScan):
  536.                Grafikarte:
  537.  
  538.  
  539. 6. Massenspeicher
  540.  
  541. [ ] Festplatte  [ ] Wechselplatte  [ ] HD-Floppy  [ ] sonstiges:
  542. [ ] CD-ROM
  543. Typenbezeichnung:                  Kapazität (MB):
  544.  
  545.  
  546. 7. Drucker
  547.  
  548. [ ] 9-Nadler  [ ] 24-Nadler  [ ] Tintenkleckser  [ ] Laserdrucker
  549. Typenbezeichnung:
  550.  
  551.  
  552. 8. Sonstige Zusatzgeräte (Scanner, Grafiktabletts etc.)
  553.  
  554.  
  555.  
  556. 9. Andere Systeme (PC, Mac...)
  557.  
  558.  
  559.  
  560. 10. Einsatzbereiche
  561.  
  562.  
  563.  
  564. 11. Wodurch wurden Sie auf ObjectGEM aufmerksam?
  565.  
  566.  
  567.  
  568. 12. Fehler, Verbesserungsvorschläge etc.
  569.  
  570.  
  571.  
  572.  
  573. ------schnapp-----------------------------------------------------
  574.  
  575. Danke für's mitmachen! Die Daten werden selbstverständlich ver-
  576. traulich behandelt. Unter allen Teilnehmern wird am Ende eines
  577. jeden Monats leider nichts verlost... ;-)
  578.