home *** CD-ROM | disk | FTP | other *** search
/ C++ Games Programming / CPPGAMES.ISO / fgl / fglight / expas.arj / TEMP / 13-08.PAS < prev    next >
Pascal/Delphi Source File  |  1995-01-20  |  2KB  |  81 lines

  1. program main;
  2. {$IFDEF DPMI}
  3. uses fgmain, fgbitmap, fgmisc, fgpcx, fgvb, WinAPI;
  4. {$ELSE}
  5. {$M 16384,0,16384}
  6. uses fgmain, fgbitmap, fgmisc, fgpcx, fgvb;
  7. {$ENDIF}
  8.  
  9. var
  10.   key, aux : byte;
  11.   handle   : integer;
  12.   old_mode : integer;
  13.   status   : integer;
  14.   x, y     : integer;
  15.   buffer   : pointer;
  16.  
  17. begin
  18.   fg_initpm;
  19.   old_mode := fg_getmode;
  20.   fg_setmode(19);
  21.  
  22.   fg_vbinit;
  23. {$IFDEF DPMI}
  24.   buffer := GlobalAllocPtr(gmem_Fixed,Longint(64000));
  25.   if (buffer = NIL) then
  26.   begin
  27.     fg_setmode(old_mode);
  28.     fg_reset;
  29.     writeln('Could not create the virtual buffer.');
  30.     exit;
  31.   end;
  32.   handle := fg_vbdefine(buffer,320,200);
  33. {$ELSE}
  34.   handle := fg_vballoc(320,200);
  35.   if (handle < 0) then
  36.   begin
  37.     fg_setmode(old_mode);
  38.     fg_reset;
  39.     writeln('Could not create the virtual buffer.');
  40.     exit;
  41.   end;
  42. {$ENDIF}
  43.   status := fg_vbopen(handle);
  44.   status := fg_loadpcx('CORAL.PCX'+chr(0),0);
  45.   fg_vbclose;
  46.  
  47.   fg_setcolor(2);
  48.   fg_fillpage;
  49.   fg_setcolor(15);
  50.   fg_box(111,208,69,130);
  51.   fg_locate(3,8);
  52.   fg_text('Press arrow keys to pan.',24);
  53.  
  54.   x := 112;
  55.   y := 129;
  56.   fg_vbpaste(x,x+95,y-59,y,112,129);
  57.  
  58.   repeat
  59.   begin
  60.     fg_getkey(key,aux);
  61.     if (aux = 72) and (y < 199) then
  62.       inc(y)
  63.     else if (aux = 75) and (x < 223) then
  64.       inc(x)
  65.     else if (aux = 77) and (x > 0) then
  66.       dec(x)
  67.     else if (aux = 80) and (y > 59) then
  68.       dec(y);
  69.     fg_vbpaste(x,x+95,y-59,y,112,129);
  70.   end;
  71.   until (key = 27);
  72.  
  73. {$IFDEF dpmi}
  74.   GlobalFreePtr(buffer);
  75. {$ELSE}
  76.   fg_vbfree(handle);
  77. {$ENDIF}
  78.   fg_setmode(old_mode);
  79.   fg_reset;
  80. end.
  81.