W tym dziale zajmiemy się procedurami graficznymi kopiującymi część ekranu do bufora pamięci. Buforem pamięci
będzie zmienna bitmapa typu pointer. Pointer jest predefiniowanym typem wskaźnikowym, którego zmienne nie wskazują
danych żadnego określonego typu. Są one jednakże zgodne z dowolnym innym typem wskaźnikowym.
Do kopiowania fragmentów ekranu z wykorzystaniem bufora pamięci służą procedury GetImage i
PutImage. GetImage umieszcza wybrany prostokątny fragment ekranu określony przez współrzędne
lewego górnego narożnika i prawego dolnego narożnika w zarezerwowanym wcześniej obszarze pamięci.
GetImage(x1,y1,x2,y2,bitmapa^);
X1, y1, x2, y2 są współrzędnymi wybranego do zapamiętania fragmentu ekranu, a bitmapa jest zmienną
wskaźnikową oznaczającą adrespoczątku zarezerwowanego obszaru pamięci.
Przed wywołaniem procedury GetImage należy zarezerwować odpowiednio duży obszar pamięci.
Do określenia rozmiarów tego obszaru służy funkcja ImageSize, która zwraca wartość typu
Word.
Funkcja ta zwraca ilość bajtów potrzebnych do zapamiętania fragmentu ekranu określonego przez
współrzędne jego lewego górnego narożnika i prawego dolnego narożnika.
ImageSize(x1,y1,x2,y2);
Znajdujący się w pamięci obraz można umieścić w wybranym miejscu ekranu, określonym przez współrzędne
jego lewego górnego narożnika za pomocą funkcji PutImage.
PutImage(x1,y1,x2,y2,bitmapa^,opcja);
Argumentami funkcji oprócz parametrów lewego górnego rogu, są: adres obszaru pamięci zawierającego obraz
oraz sposób kopiowania. Możliwe są tu następujące opcje określone stałymi:
CopyPut
XorPut
OrPut
AndPut
NotPut
Działanie tych opcji ilustruje przykładowy program.