- procedure TfHauptfenster.Screenshot1Click(Sender: TObject);
 - type
 - pFarbe = ^tFarbe;
 - tFarbe = array[0..2] of Byte;
 - var
 - titel: string;
 - x,y: Integer;
 - daten: Pointer;
 - farbe: tFarbe;
 - zeiger: pFarbe;
 - bild: TBitmap;
 - jp_bild: tJPegImage;
 - begin
 - titel := caption;
 - bild := TBitmap.Create;
 - bild.Width := ClientWidth;
 - bild.Height := ClientHeight;
 - getMem(daten,clientwidth*clientheight*3);
 - render(false);
 - glReadPixels(0,0,clientWidth,ClientHeight,GL_RGB,GL_UNSIGNED_BYTE,Daten);
 - zeiger := daten;
 - for y := ClientHeight -1 downto 0 do
 - begin
 - for x := 0 to clientWidth -1 do
 - begin
 - farbe := pFarbe(zeiger)^;
 - bild.Canvas.Pixels[x,y] := RGB(farbe[0],farbe[1],farbe[2]);
 - inc(zeiger);
 - end;
 - caption := intToStr(round((100/clientWidth)*y))+'%';
 - end;
 - bild.Canvas.TextOut(10,10,intToStr(ClientWidth)+','+IntToStr(ClientHeight));
 - jp_bild := TJpegImage.Create;
 - jp_bild.Assign(bild);
 - jp_bild.SaveToFile(extractFileDir(paramstr(0))+'\screen.jpg');
 - jp_bild.Free;
 - bild.Free;
 - caption := titel;
 - end;
 
