home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / library / dos / database / tdb / demo / units07.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1992-06-01  |  1.9 KB  |  65 lines

  1. { ──────────────────────────────────────────────────────────────── }
  2. {         VERGLEICH FREEMEM / GETMEM UNTER DOS UND WINDOWS         }
  3. { ──────────────────────────────────────────────────────────────── }
  4. { Demonstriert die "Relativität" der Speicherverwaltung unter Win- }
  5. { dows im Vergleich zu DOS: Unter Windows bleiben auch bei 100%-ig }
  6. { sauberer Verwendung von GETMEM / FREEMEM (und auch NEW / DIS-    }
  7. { POSE) immer ein paar Bytes irgendwo hängen (um genau zu sein: in }
  8. { den Handles, die Turbo-Pascal für den Programmierer transparent  }
  9. { anlegt, da ja "echte" Pointer in Windows absolut tabu sind).     }
  10. { ──────────────────────────────────────────────────────────────── }
  11. {       (c)  1992  by  Aurora  featuring  M.J. Schwaiger           }
  12. { ──────────────────────────────────────────────────────────────── }
  13. {      History:                                                    }
  14. { 1992-04-15   MS   Implementierung.                               }
  15. { ──────────────────────────────────────────────────────────────── }
  16.  
  17. {$UNDEF Windows}                  { Unter Windows: $DEFINE Windows }
  18.  
  19. PROGRAM Units07;
  20.  
  21.   USES
  22. {$IFDEF Windows}
  23.     WINCRT;
  24. {$ELSE}
  25.     CRT;
  26. {$ENDIF}
  27.  
  28.  
  29.   TYPE
  30.     TFriendRec     = RECORD
  31.       Name         : STRING [30];
  32.       Age          : BYTE;
  33.     END;
  34.  
  35.   VAR
  36.     p              : POINTER;
  37.  
  38.  
  39.   BEGIN
  40.     CLRSCR;
  41.     WRITELN;
  42.  
  43.     IF MAXAVAIL < SIZEOF (TFriendRec) THEN
  44.       WRITELN ('Pech gehabt - nicht genug Speicher ! (Das kann nicht Windows sein ?!)')
  45.     ELSE
  46.     BEGIN
  47.       WRITELN (MEMAVAIL, '   ', MAXAVAIL);
  48.  
  49.       GETMEM (p, SIZEOF (TFriendRec));
  50.  
  51.       WRITELN (MEMAVAIL, '   ', MAXAVAIL);
  52.  
  53. { Hier würden die Bearbeitungsroutinen kommen ... }
  54.  
  55.       FREEMEM (p, SIZEOF (TFriendRec));
  56.  
  57.       WRITELN (MEMAVAIL, '   ', MAXAVAIL);
  58.  
  59.       WRITELN;
  60.       WRITE ('Weiter ...');
  61.       READKEY;
  62.       WRITELN;
  63.     END;
  64.  
  65.   END. { PROGRAM UNITS07 }