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 by 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 *)
- (* ----------------------------------------------------- *)