Home Inhaltsverzeichnis Objekthierarchie Typen und Records

6 Prozeduren und Funktionen


6.1 Cookie-Routinen


6.1.1 ChangeCookie

Deklaration

     function ChangeCookie(cookie: TCookieID;
                             newval: longint): boolean;

Beschreibung

Ändert den Wert des in cookie übergebenen Cookies auf newval. Wenn kein CookieJar existiert oder der angegebene Cookie nicht vorhanden ist, wird false zurückgegeben, sonst true.

6.1.2 GetCookie

Deklaration

     function GetCookie(cookie: TCookieID;
                           var value: longint): boolean;

Beschreibung

Gibt in value den Wert des Cookies cookie zurück, wenn dieser existiert. Die Rückgabe ist dann true. Ansonsten wird false zurückgegeben und value nicht verändert.

6.1.3 NewCookie

Deklaration

     function NewCookie(cookie: TCookieID;
                            value: longint): boolean;

Beschreibung

Legt einen neuen Cookie mit Kennung cookie und Wert value an, wenn ein CookieJar existiert und noch mind. ein Platz darun frei ist. Die Rückgabe ist dann true.

6.1.4 RemoveCookie

Deklaration

     function RemoveCookie(cookie: TCookieID): boolean;

Beschreibung

Entfernt den Cookie mit Kennung cookie aus dem CookieJar. Existiert kein CookieJar oder ist der angegebene Cookie nicht vorhanden, wird false zurückgegeben.

6.2 Datei-Routinen


6.2.1 BootDevice

Deklaration

     function BootDevice: char;

Beschreibung

Liefert die Laufwerksbezeichnung des Boot-Laufwerks ("A", "B" etc.). Dazu wird die Systemvariable _bootdev ($446) ausgewertet.

6.2.2 Exist

Deklaration

     function Exist(FileName: string): boolean;

Beschreibung

Gibt an, ob die Datei FileName existiert. Die DTA der Applikation wird nicht verändert! Aus Sicherheitsgründen wird intern eine wind_update()-Schachtelung vorgenommen.

6.2.3 FileSelect

Deklaration

     function FileSelect(AParent: PWindow; ATitle,
                 AMask: string; var APath,AFile: string;
                 ForceExist: boolean): boolean;

Beschreibung

Ermöglicht eine einfache Bearbeitung des Dateiauswahl-Dialogs. Wenn die Fileselectbox aus einer Dialogbox heraus aufgerufen wird, sollte AParent auf diesen Dialog zeigen (mittels @self), damit die Dialogbox, wenn sie modal sein sollte, korrekt restauriert werden kann (sonst muß AParent nil sein).

In ATitle wird ein Titel für die Dateiauswahl übergeben. Es wird automatisch darauf geachtet, ob die vorhandene TOS-Version fsel_exinput() unterstützt, sonst wird der Titel ignoriert (das ABC-GEM wird beachtet, ebenso wie ein FSEL-Cookie). In AMask wird die Dateimaske übergeben (z.B. '*.TXT','TEST.?A?'). Wird ein Leerstring übergeben, werden alle Dateien angezeigt.

In APath muß der gewünschte Pfad (Leerstring=aktueller Pfad) angegeben werden, AFile muß keinen bestimmten Wert enthalten (s.u.). Wenn ForceExist auf true gesetzt wird, kann der Dialog nicht mit <OK> verlassen werden, wenn die ausgewählte Datei gar nicht existiert. Wenn eine Datei mit <OK> ausgewählt wurde, wird true zurückgegeben und APath enthält den Pfad der Datei, die in AFile geliefert wird (AFile enthält also keine Pfadangaben). Ansonsten wird false geliefert, und AFile und APath werden nicht verändert.

Aus Sicherheitsgründen wird intern eine wind_update()-Schachtelung vorgenommen.

6.2.4 GetDrives

Deklaration

     function GetDrives: longint;

Beschreibung

Liefert Dsetdrv(Dgetdrv) zurück, d.h. die Bitmap aller angemeldeten GEMDOS-Laufwerke. Bit 0 entspricht dabei Laufwerk A: etc.

6.2.5 GetExtension

Deklaration

     function GetExtension(FileName: string): string;

Beschreibung

Liefert die Datei-Extension von FileName (incl. Punkt). Für 'C:\TEST.DB' würde man also '.DB' erhalten.

6.2.6 GetFilename

Deklaration

     function GetFilename(FileName: string;
                                Ext: boolean): string;

Beschreibung

Gibt den Dateinamen von FileName ohne Pfadangabe zurück. Die Extension wird nur angehängt, wenn Ext true ist, sonst wird sie (incl. Punkt) abgeschnitten.

6.2.7 GetHomeDir

Deklaration

     function GetHomeDir(RootDefault: boolean): string;

Beschreibung

Liefert das User-Home-Verzeichnis als absoluten Pfad (incl. Backslash), wozu die Environmentvariable HOME ausgewertet wird.

Wenn HOME nicht gesetzt ist, wird - in Abhängigkeit von RootDefault - das Boot-Wurzelverzeichnis (true) oder das Verzeichnis der Applikation (false) gewählt.

6.2.8 GetPath

Deklaration

     function GetPath(FileName: string): string;

Beschreibung

Liefert den in FileName enthaltenen Pfad (incl. Backslash). Wenn FileName keine Pfadangabe enthält, wird ein Leerstring zurückgegeben.

6.2.9 GetTempDir

Deklaration

     function GetTempDir: string;

Beschreibung

Liefert das globale temporäre Verzeichnis als absoluten Pfad (incl. Backslash). Dazu wird nach folgenden Environment-Variablen gesucht, bis eine davon einen gültigen Pfad enthält: TMPDIR, TEMPDIR, TMP, TEMP, TRASHDIR. Ist keine dieser Variablen gültig, wird das Verzeichnis der Applikation genommen.

6.2.10 GetTempFilename

Deklaration

     function GetTempFilename: string;

Beschreibung

Gibt einen Dateinamen zurück (12 Zeichen), der sich aus Datum und Uhrzeit zusammensetzt. Dieser Name kann für temporäre Dateien etc. verwendet werden.

Z.Z. unterscheiden sich die zurückgelieferten Namen nur dann, wenn GetTempFilename im Abstand von mind. 2 Sekunden aufgerufen wird.

6.2.11 PathExist

Deklaration

     function PathExist(PathName: string): boolean;

Beschreibung

Gibt an, ob der Pfad (Ordner) PathName existiert. Die DTA der Applikation wird nicht verändert! Aus Sicherheitsgründen wird intern eine wind_update()-Schachtelung vorgenommen.

PathName kann mit oder ohne abschließenden Backslash ('\') angegeben werden. Wird ein Wurzelverzeichnis übergeben (z.B. 'C:\'), so wird überprüft, ob das Laufwerk vorhanden ist.

6.3 Grafik-Routinen


6.3.1 vdi_fix

Deklaration

     procedure vdi_fix(var pfd: MFDB;
                     theAddr: pointer; w,h: integer);

Beschreibung

Füllt eine MFDB-Struktur aus. fd_addr wird auf theAddr gesetzt, fd_w auf w und fd_h auf h. fd_wdwidth wird aus fd_w errechnet. fd_nplanes wird standardmäßig auf 1 gesetzt, fd_stand auf FF_STAND; hier sind also evtl. selbst Änderungen durchzuführen. fd_r1, fd_r2 und fd_r3 werden ausgenullt.

Folgende Konstanten sind für fd_stand vorgesehen:

     const FF_STAND   = 1;
           FF_DEVSPEC = 0;

6.3.2 vr_convert

Deklaration

     procedure vr_convert(handle: integer;
                      psrcMFDB: MFDB; format: integer);

Beschreibung

Wandelt eine durch psrcMFDB beschriebene Bitmap auf der VDI-Workstation handle in das Format format um, wenn sie nicht schon in diesem vorliegt (d.h. format sollte ungleich fd_stand sein).

6.4 Maus-Routinen


6.4.1 ArrowMouse

Deklaration

     procedure ArrowMouse;

Beschreibung

Wandelt den Mauscursor in den normalen Pfeil um, wenn gleich viele (oder mehr) Aufrufe von ArrowMouse gegenüber BusyMouse (bzw. SliceMouse) gemacht wurden.

6.4.2 BusyMouse

Deklaration

     procedure BusyMouse;

Beschreibung

Wandelt den Mauscursor in die Biene um, um anzuzeigen, daß z.Z. eine Aktion ausgeführt wird. ObjectGEM merkt sich, wie oft BusyMouse aufgerufen wurde. Damit der Mauscursor wieder als Pfeil dargestellt wird, muß ArrowMouse mind. genauso oft aufgerufen werden, wodurch sich verschachtelte Änderungen des Mauscursors nicht gegenseitig stören. Aus genau diesem Grund sollten diese beiden Mausformen nie direkt mit graf_mouse() gesetzt werden!

6.4.3 GetMouse

Deklaration

     procedure GetMouse(var Indx: HCursor;
                                    var Form: MFORM);

Beschreibung

Liefert die aktuelle Mausform zurück. In Indx erhält man die Nummer, in Form die evtl. benutzerdefinierten Daten.

6.4.4 HideMouse

Deklaration

     procedure HideMouse;

Beschreibung

Macht den Mauscursor unsichtbar.

6.4.5 IsMouseBusy

Deklaration

     function IsMouseBusy: boolean;

Beschreibung

Gibt an, ob der Mauscursor z.Z. als Biene dargestellt wird, d.h. ob BusyMouse (bzw. SliceMouse) öfter als ArrowMouse aufgerufen wurde.

6.4.6 IsMouseVisible

Deklaration

     function IsMouseVisible: boolean;

Beschreibung

Gibt an, ob der Mauscursor z.Z. sichtbar ist, d.h. ob ShowMouse häufiger als HideMouse aufgerufen wurde.

6.4.7 LastMouse

Deklaration

     procedure LastMouse;

Beschreibung

Stellt den Mauscursor wieder her, der vor dem letzten graf_mouse()-Aufruf aktuell war.

6.4.8 SetMouse

Deklaration

     function SetMouse(Indx: HCursor;
                         Form: MFORMPtr): integer;

Beschreibung

Entspricht im wesentlichen graf_mouse(), allerdings können zusätzliche Mausformen verwendet werden. Außerdem kann durch Verwendung dieser Routine die aktuelle Einstellung mit GetMouse erfragt werden.

6.4.9 SetMousePos

Deklaration

     procedure SetMousePos(mX,mY: integer);

Beschreibung

Setzt den Mauscursor an die Position (mY,mY). Intern wird appl_tplay() verwendet.

6.4.10 ShowMouse

Deklaration

     procedure ShowMouse;

Beschreibung

Macht den Mauscursor sichtbar.

6.4.11 SliceMouse

Deklaration

     procedure SliceMouse;

Beschreibung

Wandelt den Mauscursor in eine schwarz-weiß geviertelte Scheibe um, die mit SliceMouseNext zum Drehen gebracht werden kann.

ObjectGEM merkt sich, wie oft SliceMouse aufgerufen wurde (BusyMouse und SliceMouse benutzen denselben Zähler). Damit der Mauscursor wieder als Pfeil dargestellt wird, muß ArrowMouse mind. genauso oft aufgerufen werden, wodurch sich verschachtelte Änderungen des Mauscursors nicht gegenseitig stören.

6.4.12 SliceMouseNext

Deklaration

     procedure SliceMouseNext;

Beschreibung

Wechselt bei jedem Aufruf die Mausformen IDC_SLICE1 bis IDC_SLICE4 ab, so daß man den Fortgang einer Aktion durch das Drehen der Scheibe anzeigen kann.

Darf nur aufgerufen werden, wenn vorher SliceMouse aufgerufen wurde.

6.5 Pointer-Routinen


6.5.1 GetOSHeaderPtr

Deklaration

     function GetOSHeaderPtr: pointer;

Beschreibung

Gibt einen Zeiger auf den OS-Header zurück, d.h. es wird _sysbase ($4f2) ausgewertet und dann der Zeiger os_beg bei Offset $08 geliefert.

6.5.2 GetQSB

Deklaration

     procedure GetQSB(var p: pointer; var len: longint);

Beschreibung

Gibt in p einen Pointer auf den AES-"Quarter Screen Buffer" zurück, wenn dieser vorhanden ist, sonst ist p=nil. Im Falle der Existenz wird in len die Länge des Buffers in Bytes angegeben.

Unter MultiTOS wird immer nil zurückgegeben, da dort das Zugriffsrecht auf den Puffer nicht definiert ist.

6.5.3 HiWord

Deklaration

     function HiWord(p: pointer): word;

Beschreibung

Gibt das High-Word des Pointers p zurück.

6.5.4 LoWord

Deklaration

     function LoWord(p: pointer): word;

Beschreibung

Gibt das Low-Word des Pointers p zurück.

6.5.5 Ptr

Deklaration

     function Ptr(hi,lo: word): pointer;

Beschreibung

Berechnet aus dem High-Word hi und dem Low-Word lo den zugehörigen Pointer. Ist so eine Art Ersatz für die von PP nicht unterstützte Ptr-Funktion, allerdings hat diese Implementierung volle Gültigkeit auf 680xx-Prozessoren.

6.6 Profile-Routinen


6.6.1 ClosePrivateProfile

Deklaration

     function ClosePrivateProfile: boolean;

Beschreibung

Schließt eine zuvor mit OpenPrivateProfile geöffnete INF-Datei. Wenn an dem Profile Änderungen vorgenommen wurden, wird vorher noch SavePrivateProfile aufgerufen.

Die Rückgabe ist true, wenn das Profile korrekt geschlossen werden konnte, false, wenn gar kein Profile geöffnet war oder beim Speichern ein Fehler aufgetreten ist.

Wird von TApplication.Done aufgerufen.

6.6.2 GetPrivateProfileInt

Deklaration

     function GetPrivateProfileInt(AppName,
                     KeyName: string; Default: longint;
                     FileName: string): longint;

Beschreibung

Diese Funktion ruft den Wert einer Integerschlüsselanweisung aus der durch FileName angegebenen INF-Datei (z.B. 'TEST.INF') ab.

GetPrivateProfileInt sucht die Datei nach einer durch den Parameter KeyName bestimmten Schlüsselanweisung ab und überprüft dann die Übereinstimmung von AppName und dem in der Datei stehenden Anwendungsnamen.

Ein Integereintrag in der INF-Datei muß folgende Form haben:

     [Anwendungsname]
     Schlüsselanweisung = wert
     ...

Das könnte also z.B. so aussehen:

     [Drucker]
     Kopien=2

Wird die Schlüsselanweisung nicht oder nicht unter dem Anwendungsnamen gefunden, wird Default zurückgegeben. Ansonsten wird der Wert der Schlüsselanweisung geliefert, wobei den Ziffern folgende Buchstaben ignoriert werden (z.B. gibt 'Kopien=3abc' den Wert 3 zurück).

Wichtig: Die Groß-/Kleinschreibung bei AppName und KeyName wird nicht berücksichtigt.

Aus Sicherheitsgründen wird intern eine wind_update()-Schachtelung durchgeführt, außer wenn mit OpenPrivateProfile die Profile-Operationen in den Speicher verlagert wurden.

6.6.3 GetPrivateProfileString

Deklaration

     function GetPrivateProfileString(AppName,KeyName,
                      Default,FileName: string): string;

Beschreibung

Diese Funktion ruft den Wert einer Schlüsselanweisung aus der durch FileName angegebenen INF-Datei (z.B. 'TEST.INF') ab.

GetPrivateProfileString sucht die Datei nach einer durch den Parameter KeyName bestimmten Schlüsselanweisung ab und überprüft dann die Übereinstimmung von AppName und dem in der Datei stehenden Anwendungsnamen.

Ein Stringeintrag in der INF-Datei muß folgende Form haben:

     [Anwendungsname]
     Schlüsselanweisung = string
     ...

Das könnte also z.B. so aussehen:

     [Grafik]
     Bildname=TIGER.IMG

Wird die Schlüsselanweisung nicht oder nicht unter dem Anwendungsnamen gefunden, wird Default zurückgegeben. Ansonsten wird die Zeichenkette hinter den Schlüsselanweisung geliefert.

Wichtig: Die Groß-/Kleinschreibung bei AppName und KeyName wird nicht berücksichtigt.

Aus Sicherheitsgründen wird intern eine wind_update()-Schachtelung durchgeführt, außer wenn mit OpenPrivateProfile die Profile-Operationen in den Speicher verlagert wurden.

6.6.4 OpenPrivateProfile

Deklaration

     function OpenPrivateProfile
                           (FileName: string): boolean;

Beschreibung

Lädt die in FileName angegebene INF-Datei in den Speicher, wo sie mit einer TStrCollection verwaltet wird. Alle Profile-Operationen, die auf dieser INF-Datei ausgeführt werden, benötigen dadurch keine Plattenzugriffe mehr und werden so beschleunigt.

Es kann immer nur ein Profile im Speicher verwaltet werden, Zugriffe auf andere Profiles werden direkt auf der Platte ausgeführt.

OpenPrivateProfile liefert true, wenn die INF-Datei eingelesen werden konnte. Existiert die Datei nicht (d.h. das Profile wird mit diesem Aufruf neu angelegt) oder trat ein Fehler auf, ist die Rückgabe false.

Wichtig: Die Datei $HOME/user.inf kann mit dieser Routine nicht geöffnet werden, da diese Datei evtl. eine globale Konfigurationsdatei wird.

6.6.5 SavePrivateProfile

Deklaration

     function SavePrivateProfile: boolean;

Beschreibung

Speichert eine mit OpenPrivateProfile geöffnete INF-Datei, wenn Änderungen vorgenommen wurden. Die Rückgabe ist true, wenn beim Speichern kein Fehler aufgetreten ist.

Aus Sicherheitsgründen wird eine evtl. schon vorhandene INF-Datei erst gelöscht, wenn die neue Datei fehlerfrei geschrieben werden konnte. Dazu wird eine temporäre Datei, die mit GetTempFilename ermittelt wird, angelegt.

Wird von ClosePrivateProfile aufgerufen.

6.6.6 WritePrivateProfileInt

Deklaration

     function WritePrivateProfileInt(AppName,
                       KeyName: string; Value: longint;
                       FileName: string): boolean;

Beschreibung

Diese Funktion kopiert den durch den Parameter Value übergebenen Wert in die durch FileName angegebene INF-Datei (z.B. 'MYAPP.INF'). Sie sucht die Datei nach der Schlüsselanweisung ab, die durch den Parameter KeyName bestimmt ist, der wiederum unter dem Anwendungsnamen AppName zu finden ist. Wird keine Übereinstimmung gefunden, fügt die Funktion der Datei eine entsprechende Schlüsselanweisung (und wenn nötig auch den zugehörigen Anwendungsnamen) hinzu. Ist die Schlüsselanweisung hingegen vorhanden, wird der zugehörige Wert durch Value ersetzt. Der Rückgabewert ist true, wenn die Funktion erfolgreich war, false sonst.

Weitere Anmerkungen zu den Profiles sind unter WritePrivateProfileString zu finden.

6.6.7 WritePrivateProfileString

Deklaration

     function WritePrivateProfileString(AppName,
               KeyName,Value,FileName: string): boolean;

Beschreibung

Diese Funktion kopiert den durch den Parameter Value übergebenen String in die durch FileName angegebene INF-Datei (z.B. 'MYAPP.INF'). Sie sucht die Datei nach der Schlüsselanweisung ab, die durch den Parameter KeyName bestimmt ist, der wiederum unter dem Anwendungsnamen AppName zu finden ist. Wird keine Übereinstimmung gefunden, fügt die Funktion der Datei eine entsprechende Schlüsselanweisung (und wenn nötig auch den zugehörigen Anwendungsnamen) hinzu. Ist die Schlüsselanweisung hingegen vorhanden, wird der zugehörige String durch Value ersetzt. Der Rückgabewert ist true, wenn die Funktion erfolgreich war, false sonst (z.B. auch, wenn in AppName oder KeyName ein Leerstring übergeben wird).

Wird in FileName kein absoluter Pfad übergeben, wird der Pfad mit GetHomeDir ermittelt. Existiert die Datei noch nicht, wird sie neu angelegt.

Eine Schlüsselanweisung kann aus der INF-Datei gelöscht werden, indem für Value ein Leerstring übergeben wird.

Kommentarzeilen in den Profiles werden mit einem Semikolon am Anfang markiert.

Eine Anwendung sollte eine INF-Datei benutzen, wenn irgendwelche Informationen bzgl. der Konfiguration des Programms gespeichert werden sollen. Außerdem haben die Profiles den Vorteil, daß die Informationen darin als lesbarer ASCII-Text vorliegen, der - wenn es sein muß - auch "von Hand" relativ einfach geändert werden kann. Zum Umkopieren des Profiles wird eine temporäre Datei angelegt, die mit GetTempFilename ermittelt wird.

Aus Sicherheitsgründen wird intern eine wind_update()-Schachtelung durchgeführt, es sei denn, mit OpenPrivateProfile wurden die Profile-Operationen in den Speicher verlagert (was aus Geschwindigkeitsgründen immer zu empfehlen ist).

Ein Beispiel für den Aufbau eines Profiles ist unter GetPrivateProfileString zu finden.

6.6.8 GetProfileInt

Deklaration

     function GetProfileInt(AppName,KeyName: string;
                             Default: longint): longint;

Beschreibung

Entspricht im wesentlichen GetPrivateProfileInt, abgesehen davon, daß diese Routine immer auf der Datei $HOME/user.inf arbeitet.

Dabei handelt es sich um eine globale Konfigurationsdatei, über die z.Z. gerade diskutiert wird. Deshalb ist auch nicht ausgeschlossen, daß sich Name, Ort, Inhalt etc. der Datei noch ändern!

6.6.9 GetProfileString

Deklaration

     function GetProfileString(AppName,KeyName,
                              Default: string): string;

Beschreibung

Entspricht im wesentlichen GetPrivateProfileString, abgesehen davon, daß diese Routine immer auf der Datei $HOME/user.inf arbeitet.

Dabei handelt es sich um eine globale Konfigurationsdatei, über die z.Z. gerade diskutiert wird. Deshalb ist auch nicht ausgeschlossen, daß sich Name, Ort, Inhalt etc. der Datei noch ändern!

6.6.10 WriteProfileInt

Deklaration

     function WriteProfileInt(AppName,KeyName: string;
                               Value: longint): boolean;

Beschreibung

Entspricht im wesentlichen WritePrivateProfileInt, abgesehen davon, daß diese Routine immer auf der Datei $HOME/user.inf arbeitet.

Dabei handelt es sich um eine globale Konfigurationsdatei, über die z.Z. gerade diskutiert wird. Deshalb ist auch nicht ausgeschlossen, daß sich Name, Ort, Inhalt etc. der Datei noch ändern!

6.6.11 WriteProfileString

Deklaration

     function WriteProfileString(AppName,KeyName,
                                Value: string): boolean;

Beschreibung

Entspricht größtenteils WritePrivateProfileString, abgesehen davon, daß diese Routine immer auf der Datei $HOME/user.inf arbeitet.

Dabei handelt es sich um eine globale Konfigurationsdatei, über die z.Z. gerade diskutiert wird. Deshalb ist auch nicht ausgeschlossen, daß sich Name, Ort, Inhalt etc. der Datei noch ändern!

6.7 Rechteck-Routinen


6.7.1 A2toGR

Deklaration

     procedure A2toGR(var r: GRECT);

Beschreibung

Wandelt die absoluten Koordinaten in Breite und Höhe des Rechtecks um.

6.7.2 GRtoA2

Deklaration

     procedure GRtoA2(var r: GRECT);

Beschreibung

Wandelt Breite und Höhe des Rechtecks in zwei gegenüberliegende (absolute) Punkte um.

6.7.3 rc_intersect

Deklaration

     function rc_intersect(r1: GRECT;
                            var r2: GRECT): boolean;

Beschreibung

Gibt true zurück, wenn sich die beiden Rechtecke r1 und r2 überschneiden. Das Schnitt-Rechteck wird in r2 zurückgegeben, die GRECT-Struktur wird komplett ausgefüllt (mit beiden Koordinatenangaben).

Ansonsten wird false zurückgegeben und r2 nicht verändert.

6.8 Versions-Routinen


6.8.1 DtoS

Deklaration

     function DtoS(l: longint): string;

Beschreibung

Wandelt ein Datum, das im Format $mmttjjjj vorliegt (das sind z.B. die Systemdaten) in einen "lesbaren" Datumsstring um. Ist kein _IDT-Cookie vorhanden, hat der String immer die Form 'tt.mm.jjjj'. Ansonsten wird der Cookie-Wert analysiert, die Bits 11..8 geben das Datumsformat an:

0
mm?tt?jjjj

1
tt?mm?jjjj

2
jjjj?mm?tt

3
jjjj?tt?mm

In den Bits 7..0 ist das Trennzeichen angegeben, #0 wird als '/' interpretiert.

6.8.2 GEMDOSVersion

Deklaration

     function GEMDOSVersion: word;

Beschreibung

Gibt die GEMDOS-Version zurück.

6.8.3 GEMVersion

Deklaration

     function GEMVersion: word;

Beschreibung

Liefert die GEM-(AES-)Version bzw. Null, wenn kein Applikationsobjekt instantiiert wurde.

6.8.4 MiNTVersion

Deklaration

     function MiNTVersion: word;

Beschreibung

Gibt die MiNT-Version zurück, wenn dieses installiert ist, andernfalls Null.

6.8.5 TOSDate

Deklaration

     function TOSDate: longint;

Beschreibung

Liefert das Datum der verwendeten TOS-Version.

6.8.6 TOSVersion

Deklaration

     function TOSVersion: word;

Beschreibung

Gibt die verwendete TOS-Version zurück.

6.8.7 VtoS

Deklaration

     function VtoS(w: word): string;

Beschreibung

Wandelt eine Versionsangabe, die im Format $0hll vorliegt (das sind z.B. alle von den ObjectGEM-Versions-Routinen gelieferten Zahlen), in den String 'h.ll' um.

6.9 Zeichenketten-Routinen


6.9.1 atof

Deklaration

     function atof(s: string): real;

Beschreibung

Wandelt eine Zeichenkette in eine Fließkommazahl um. Leerzeichen werden automatisch abgeschnitten, ein unäres Plus wird beachtet.

6.9.2 atol

Deklaration

     function atol(s: string): longint;

Beschreibung

Wandelt eine Zeichenkette in eine Integer-Zahl um. Leerzeichen werden automatisch abgeschnitten, ein unäres Plus wird beachtet.

6.9.3 ChrDispose

Deklaration

     procedure ChrDispose(var p: PChar);

Beschreibung

Gibt die mit ChrNew allozierte Zeichenkette wieder frei und setzt p auf nil.

6.9.4 ChrNew

Deklaration

     function ChrNew(s: string): PChar;

Beschreibung

Wandelt den String s in eine nullterminierte Zeichenkette um und alloziert den benötigten Speicher. Im Gegensatz zu StrNew wird auch eine leere Zeichenkette umgewandelt.

Als Rückgabe erhält man einen Pointer auf die neue Zeichenkette oder nil, falls der Speicher nicht alloziert werden konnte.

Darf nur mit ChrDispose wieder freigegeben werden!

6.9.5 DisposeStr

Deklaration

     procedure DisposeStr(var p: PString);

Beschreibung

Gibt den mit NewStr angelegten String wieder frei.

6.9.6 ftoa

Deklaration

     function ftoa(f: real): string;

Beschreibung

Wandelt eine Fließkommazahl in einen String um. Rechts vom Komma werden alle Nullen abgeschnitten, wenn es sich nicht um die einzige Ziffer nach dem Komma handelt.

6.9.7 LowChar

Deklaration

     function LowChar(ch: char): char;

Beschreibung

Wandelt Groß- in Kleinbuchstaben um. Umlaute werden berücksichtigt!

6.9.8 ltoa

Deklaration

     function ltoa(l: longint): string;

Beschreibung

Wandelt eine Integer-Zahl in einen String um.

6.9.9 NewStr

Deklaration

     function NewStr(s: string): PString;

Beschreibung

Legt einen dynamischen String an, es wird entsprechend viel Speicher alloziert.

Als Rückgabe erhält man einen Pointer auf den String oder nil, wenn nicht genug Speicher vorhanden ist bzw. in s ein Leerstring übergeben wurde.

6.9.10 RPos

Deklaration

     function RPos(subStr,Str: string): byte;

Beschreibung

Die Funktion RPos sucht einen Teilstring subStr rückwärts in einem String Str. Falls Str den Teilstring subStr enthält, liefert RPos als Resultat den Index des ersten übereinstimmenden Zeichens des letzten Vorkommens von subStr in Str, sonst Null.

6.9.11 StrLPas

Deklaration

     function StrLPas(p: PChar; maxc: integer): string;

Beschreibung

Wandelt die nullterminierte Zeichenkette p in einen String um, wobei maximal maxc Zeichen übernommen werden.

6.9.12 StrPLeft

Deklaration

     function StrPLeft(s: string; c: integer): string;

Beschreibung

Gibt die c linken Zeichen von s zurück. Wenn c<=0 ist, wird ein Leerstring zurückgegeben.

6.9.13 StrPLower

Deklaration

     function StrPLower(s: string): string;

Beschreibung

Gibt den in Kleinbuchstaben umgewandelten String s zurück. Umlaute werden berücksichtigt.

6.9.14 StrPRight

Deklaration

     function StrPRight(s: string; c: integer): string;

Beschreibung

Gibt die c rechten Zeichen von s zurück. Wenn c<=0 ist, wird ein Leerstring zurückgegeben.

6.9.15 StrPSpace

Deklaration

     function StrPSpace(anz: integer): string;

Beschreibung

Gibt eine Zeichenkette zurück, die aus anz Leerzeichen besteht. Für c<=0 wird ein Leerstring zurückgegeben.

6.9.16 StrPTrim

Deklaration

     procedure StrPTrim(var s: string);

Beschreibung

Schneidet bei dem String s links und rechts alle Leerzeichen bzw. ASCII #0 ab.

6.9.17 StrPTrimF

Deklaration

     function StrPTrimF(s: string): string;

Beschreibung

Gibt den String s zurück, bei dem links und rechts alle Leerzeichen und ASCII #0 abgeschnitten wurden.

6.9.18 StrPUpper

Deklaration

     function StrPUpper(s: string): string;

Beschreibung

Gibt den in Großbuchstaben umgewandelten String s zurück. Umlaute werden berücksichtigt.

6.9.19 UpChar

Deklaration

     function UpChar(ch: char): char;

Beschreibung

Wandelt Klein- in Großbuchstaben um. Im Gegensatz zu UpCase werden die Umlaute berücksichtigt!

6.10 Sonstige Prozeduren und Funktionen


6.10.1 Abstract

Deklaration

     procedure Abstract;

Beschreibung

Ein Aufruf dieser Prozedur beendet das Programm mit dem Laufzeitfehler 211 ("Call to abstract method"). Wird ein abstrakter Objekttyp implemen- tiert, sollte man Aufrufe von Abstract in den- jenigen virtuellen Methoden einsetzen, die von Nachkommen des Typs neu definiert werden müssen. Dies stellt sicher, daß jeder Versuch fehlschlägt, den abstrakten Objekttyp zu instantiieren.

6.10.2 appl_yield

Deklaration

     procedure appl_yield;

Beschreibung

Gibt anderen Prozessen (Accessories) Rechenzeit ab, wenn z.B. eine langwierige Berechnung durchgeführt wird. Intern wird evnt_timer(1,0) aufgerufen.

6.10.3 Between

Deklaration

     function Between(x,min,max: longint): boolean;

Beschreibung

Gibt an, ob sich der Wert x zwischen min und max befindet (inklusive).

6.10.4 bTst

Deklaration

     function bTst(value,mask: longint): boolean;

Beschreibung

Gibt an, ob die Bits, die in mask gesetzt sind, auch in value gesetzt sind.

6.10.5 form_box

Deklaration

     procedure form_box(flag: integer; r: GRECT);

Beschreibung

Zeichnet sich größer werdende bzw. schrumpfende Rechtecke mittels form_dial(). In r wird das Rechteck bei seiner größten Ausdehnung übergeben, die kleinste Ausdehnung berechnet form_box als Mittelpunkt des großen Rechtecks. Für flag können die Werte FMD_GROW und FMD_SHRINK übergeben werden.

6.10.6 GetDesk

Deklaration

     procedure GetDesk(var r: GRECT);

Beschreibung

Gibt in r die Koordinaten des Fensters 0, d.h. des Desktops zurück. In r liegen danach beide Koordinatenangaben vor.

6.10.7 IsDesktopActive

Deklaration

     function IsDesktopActive: boolean;

Beschreibung

Gibt true zurück, wenn der GEM-Desktop z.Z. aktiv ist, d.h. wenn keine andere Applikation gestartet ist. Dazu wird unter einem Singletasking-TOS die lokale GEMDOS-Variable act_pd (auf die p_run zeigt) ausgewertet.

Unter MultiTOS wird mit appl_find() der aktuelle Prozeß ermittelt und mit der Systemshell, die mit appl_search() bestimmt wird, verglichen.

6.10.8 MapKey

Deklaration

     function MapKey(Key: word): word;

Beschreibung

Dient zur Länder-unabhängigen Auswertung der Tastatur. Wird intern vom TDialog-Keyboard-Handler benutzt. Die Funktion ändert eine VDI-Taste (Rückgabe von z.B. evnt_keybd()) in ein word-großes, codiertes Zeichen:

     HighByte LowByte
     -------- -------    ACLR sind Shift-Status-Bits
     SxxxACLR CHARCODE = ASCII-(S=0) oder Scan(S=1)-Code

Die Routine stammt ursprünglich von Ken Badertscher (Atari).

6.10.9 Max

Deklaration

     function Max(a,b: longint): longint;

Beschreibung

Gibt die größere Zahl von a und b zurück.

6.10.10 Min

Deklaration

     function Min(a,b: longint): longint;

Beschreibung

Gibt die kleinere Zahl von a und b zurück.

6.10.11 Sgn

Deklaration

     function Sgn(x: longint): integer;

Beschreibung

Dies ist die sog. Signum-Funktion, d.h. die Rückgabe ist -1 für x<0, 0 für x=0 und 1 für x>0.


Home Inhaltsverzeichnis Objekthierarchie Typen und Records