home *** CD-ROM | disk | FTP | other *** search
- *********************************************************************
-
- Beschreibung der UNIT "New_Open_Screen"
-
- *********************************************************************
-
- Mit Erscheinen von OS2.0 wurde das Öffnen von Screens und Windows
- stark erweitert. Leider bietet Kick-Pascal jedoch nur die kompatieble
- OS1.3-Fassung.
-
- Um jedoch auf einfachste Weise die neuen Freatures nutzen zu können,
- habe ich die Unit "New_Open_Screen" geschrieben. Die neuen Befehle
- darin zum Öffnen und Schließen von Bildschirmen bzw. Fenstern
- entsprechen in ihrem Ausbau größtenteils den KP-Originalen, bieten
- aber durch zum Teil eigene TagItems eine bessere Flexibilität. Für
- jeden Bereich (Screens, Windows) gibt es 2 Befehle - einen zum Öffnen
- und einen zum Schließen, richtig!
-
-
- Die Befehle für Bildschirme (Screens):
-
-
- New_Open_ScreenA
-
- Syntax:
-
- p_Screen := New_Open_Screen(LeftEdge, TopEdge,
- Width, Height,
- Depth,
- BlockPen, DetailPen,
- Mode,
- Titel,
- TagListe)
-
- Parameter:
-
- LeftEdge bestimmt die linke Ecke des Bildschirm, sollte meist
- null sein
- TopEdge bestimmt entsprechend die obere Ecke des Schirms, sollte
- auch meist null sein
- Width Bildschirmbreite, (-1) öffnet einen Bildschirm mit der
- Breite, wie sie in den System-Preferences für
- OSCAN_TEXT eingestellt ist
- Height Bildschirmhöhe, für (-1) gilt das selbe wie bei der
- Bildschirmbreite für die -höhe
- Depth Bildschirmtiefe, wobei sich die Farbzahl aus einer
- Potenz dieser Zahl zum Basis 2 ergibt (2^Depth)
- BlockPen Hintergrund-Farbe des Bildschirmtitels (unter OS2.0 =1)
- DetailPen Vordergrund-Farbe (Text) des Titels (unter OS2.0 =0)
- Mode Bildschirmmodus (z.B. HIRES_KEY, LORES_KEY, SUPER_KEY)
- Titel eine Zeichenkette für den Bildschirmtitel (Str)
- TagListe ein Zeiger auf eine TagItem-Liste mit OpenScreen-Tags
- (SA_) oder New_Open_Screen-Tags (NS_)
-
- Ergebnis:
-
- Ein Zeiger auf einen Screen-Struktur, NIL bei einem Fehler
-
-
- New_Close_Screen
-
- Syntax:
-
- New_Close_Screen (p_Screen)
-
- Parameter:
-
- p_Screen Zeiger auf die Screen-Struktur des zu schließenden
- Screens
-
- Ergebnis:
-
- keine!
-
-
- New_Close_ScreenA
-
- Syntax:
-
- Boolean := New_Close_ScreenA (p_Screen)
-
- Parameter:
-
- p_Screen Zeiger auf die Screen-Struktur des zu schließenden
- Screens
-
- Ergebnis:
-
- TRUE, falls Screen wirklich geschlossen, sonst FALSE
-
-
- Mit New_Open_ScreenA() geöffnete Screens MÜSSEN auch mit
- New_Close_Screen() bzw. New_Close_ScreenA() geschlossen werden!
- Andersherum sollte man keine sonstwie geöffneten Screens mit
- New_Close_Screen() bzw. New_Close_ScreenA() schließen!
-
- Mit New_Open_ScreenA() geöffnete Screens werden, falls sie am
- Programmende noch geöffnet sind, geschlossen. New_Close_ScreenA() ist
- vor allem für PublicScreens interessant, da hier Besucherfenster
- (VisitorWindows) ein Schließen des Bildschirms verhindern können und
- so, ohne dies zu beachten, der Screen bis zum nächsten Reset geöffnet
- bleibt.
-
- Hier noch die oben genannten New_Open_Screen-Tags. Diese sind KEINE
- System-Tags sondern gehören ausschließlich zu dieser Unit!
-
- NS_FontName Zeiger auf den Namen eines Fonts, der als Screen-Font
- benutzt werden soll (Default: topaz)
- NS_FontHeight hier steht entsprechend die Höhe des Fonts
- (Default: 8)
- NS_blockPen wie der BlockPen-Parameter im Befehl selbst, jedoch
- wird dieser ersetzt, falls das TagItem angegeben ist
- NS_detailPen vgl. NS_blockPen
- NS_textPen setzt den TEXTPEN der DrawInfo-Struktur des Screens
- NS_shinePen SHINEPEN, vgl. NS_textPen (Default: 2)
- NS_shadowPen SHADOWPEN, vgl. NS_textPen (Default: 1)
- NS_fillPen FILLPEN, vgl. NS_textPen (Default: 3)
- NS_filltextPen FILLTEXTPEN, vgl. NS_textPen (Default: 1)
- NS_backgroundPen BACKGROUNDPEN, vgl. NS_textPen (Default: 0)
- NS_highlighttextPen HIGHLIGHTTEXTEPEN, vgl. NS_textPen (Default: 2)
- NS_BarDetailPen BARDETAILPEN, vgl. NS_textPen (erst ab OS3.0
- vom System unterstützt) (Default: 1)
- NS_BarBlockPen BARBLOCKPEN, vgl. NS_textPen (erst ab OS3.0
- vom System unterstützt) (Default: 2)
- NS_BarTrimPen BARTRIMPEN, vgl. NS_textPen (erst ab OS3.0
- vom System unterstützt) (Default: 1)
- NS_PenArray Zeiger auf ein PenArray für die DrawInfo-Struktur
- NS_FontXDPI X-DPI des Screenfonts (Default: 1)
- NS_FontDPIX wie NS_FontXDPI
- NS_FontYDPI Y-DPI des Screenfonts (Default: 1)
- NS_FontDPIY wie NS_FontYDPI
- NS_Center Bool-Flag, wenn TRUE wird ein Bildschirm zentriert,
- d.h. ist er kleiner als in OSCAN_TEXT erscheint er in
- der Mitte des Bildschirms und nicht in der linken
- Ecke, jedoch kommt es bei übergroßen Bildschirmen
- ebenfalls zu einer dann unschönen Zentrierung
- (Default: false)
-
-
- Als OVERSCAN-Modus wird OSCAN_TEXT vorgegeben (wie bei der Workbench),
- jedoch kann der Wert durch das TagItem SA_Overscan geändert werden.
- Ebenfalls ist AutoScroll aktiv und durch SA_AutoScroll deaktiviert
- werden.
-
-
-
- Die Befehle für Fenster (Windows):
-
-
- Open_WindowA
-
- Syntax:
-
- p_Window := Open_WindowA(LeftEdge, TopEdge,
- Width, Height,
- IDCMPs,
- Flags,
- Titel,
- Screen,
- TagListe)
-
- Parameter:
-
- LeftEdge bestimmt die linke Ecke des Fensters, wird (-1)
- angegeben, wird das Fenster zentriert geöffnet
- TopEdge bestimmt entsprechend die obere Ecke des Fensters, wird
- (-1) angegeben, wird das Fenster Höhen-zentriert
- geöffnet, bei (-2) wird es knapp unter der
- Bildschirm-Titelleiste geöffnet
- Width Fensterbreite, (-1) öffnet eine Fenster in der gesamten
- Bildschirmbreite
- Height Fensterhöhe, für (-1) gilt das selbe wie bei der
- Fensterbreite für die -höhe
- IDCMPs die IDCMP-Flags des Fensters
- Flags die Window-Flags des Fensters
- Titel eine Zeichenkette für den Fenstertitel (Str) oder NIL
- Screen Zeiger auf den Screen, auf dem das Fenster erscheinen
- soll
- TagListe ein Zeiger auf eine TagItem-Liste mit OpenWindow-Tags
- (WA_) für weitere Angaben (z.B. Min- und
- MaxWidth/Height)
-
- Ergebnis:
-
- Ein Zeiger auf einen Window-Struktur, NIL bei einem Fehler
-
- Hinweis:
-
- Gegenüber dem KP-Befehl Open_Window() wurden die Parameter BlockPen
- und DetailPen weggelassen, da sie unter OS2.0 nicht mehr nötig sind.
-
- Die Angaben für Fensterbreite und -höhe beziehen sich auf die inneren
- Breiten bzw. Höhen (= WA_InnerWidth, WA_InnerHeight)!!
- Sind jedoch die Gesamtbreite/-höhe gewünscht, muß diese über eine
- extra TagListe mit WA_Width und WA_Height gestimmt werden.
-
-
- Close_WindowA
-
- Syntax:
-
- Close_WindowA (p_Window)
-
- Parameter:
-
- p_Window Zeiger auf das zu schließende Fenster
-
- Hinweis:
-
- Um Konflikte mit dem KP-Befehl Close_Window() zu umgehen wurde an
- diesen Befehl ein A (Close_WindowA()) angehängt.
-
-
- Mit Open_WindowA() geöffnete Windows MÜSSEN auch mit Close_WindowA()
- geschlossen werden! Andersherum sollte man keine sonstwie geöffneten
- Windows mit Close_WindowA() schließen!
-
- Mit Open_WindowA() geöffnete Windows werden, falls sie am Programmende
- noch geöffnet sind, geschlossen.
-
-
- WICHTIG!
-
- Keiner der Befehle überprüft, ob auch wirklich mindestens OS2.0
- vorhanden ist! Dies muß der Programmierer selbst übernehmen. Da die
- Unit allerdings die "utility.library" V37 anfordert, muß er dies VOR
- einfügen der Unit im Programm tun. Deshalb ist es auch nicht möglich,
- Programme, die auch unter OS1.3 laufen sollen MIT dieser Unit zu
- schreiben (man kann eben nicht alles haben ;-).
-
-
- Copyright und anderes
-
- Der Source-Code dieser Unit unterliegt dem
- Copyright (c) der J.Schmitz [SOFT] (Jürgen Schmitz).
-
- Die (vor)compilierte Fassung darf jedoch frei weitergegeben werden,
- sofern damit kein wirtschaftlicher Gewinn gemacht wird.
-
- Programme, die diese Unit benutzen, dürfen frei kopiert oder
- kommerziell verkauft werden. Kommerzielle Programme (dazu gehört auch
- Shareware, Giftware u.a.) müssen jedoch in der Beschreibung ODER einem
- Info-Fenster im Programm den Hinweis
-
- "Teile des Programms mit freundlicher Genemigung der J.Schmitz [SOFT]"
-
- (oder eine entsprechend anderssprachige Fassung, z.B. Englisch) haben.
- Freie Programm (PD, etc.) dürfen diesen Hinweis auch haben, müssen
- jedoch nicht. Für Schäden wird keinerlei Haftung übernommen.
-
- Also dann, viel Spaß beim Programmieren!
-
-
- JS/02
-