How to take a screenshot in Delphi

It's very simple. Just drop TScreenshot component onto your form set Source to ssDesktop and call Snap method.

with Screenshot do
begin
  Source:=ssDesktop;
  if Snap then ImageShot.Picture.Assign(Screenshot);
end;
See also
Screenshot
Components for Delphi / C++ Builder
Howtos for Programmers