home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------ *)
- (* UBASE.PAS *)
- (* *)
- (* Base: Dient als Ur-Vater für alle Objekte, damit *)
- (* Nachkommen leicht z.B. in Listen verwaltet werden *)
- (* können. *)
- (* Abstract: Bei manchen Methoden eines Objekts will *)
- (* man eine Neuimplementation erzwingen; damit sie *)
- (* nicht vergessen wird, kann "Abstract" mit dem Namen *)
- (* des Objekts aufgerufen werden. *)
- (* *)
- (* (C) 1991 R.Reichert & TOOLBOX *)
- (* ------------------------------------------------------ *)
- UNIT UBase;
-
- INTERFACE
-
- TYPE
- BasePtr = ^Base;
- Base = OBJECT
- DESTRUCTOR Done; VIRTUAL;
- END;
-
- PROCEDURE Abstract (Name : STRING);
-
- IMPLEMENTATION
-
- PROCEDURE Abstract(Name : STRING);
- BEGIN
- WriteLn('Methode von ', Name,
- 'nicht reimplementiert !');
- RunError(232);
- END;
-
- DESTRUCTOR Base.Done;
- BEGIN
- { kein Aufruf von "Abstract", weil ein Nachkomme nicht
- zwingend eigenen Destruktor braucht. }
- END;
-
- (* ------------------------------------------------------ *)
- (* Eigene Heap-Error-Funktion; Heap-Fehler liefert damit *)
- (* einen NIL-Pointer zurück anstatt einen Runtime-Error *)
- (* zu erzeugen (siehe Turbo 5.5 Handbuch, S. 113). *)
- (* ------------------------------------------------------ *)
- {$F+}
- FUNCTION HeapFunc(Size : WORD) : INTEGER;
- {$F-}
- BEGIN
- HeapFunc := 1;
- END;
-
- BEGIN
- HeapError := @HeapFunc;
- END.
- (* ------------------------------------------------------ *)
- (* Ende von UBASE.PAS *)
-