DruckenMister WongFacebook

Zeichnen auf den Desktop

System Win9x, WinNT, Win2000, WinXP, Vista, Win7
Ab Delphi-Version Delphi 1
Letzte Änderung 28.09.2010

Über die Windows-API-Funktion GetDC können Sie den sog. "display device context" ermitteln. Wenn Sie diesen einem TCanvas-Objekt als Handle übergeben, können Sie mit der kompletten TCanvas-Funktionalität auf dem Desktop zeichnen.

procedure TForm1.Button1Click(Sender: TObject);
var
DCanvas: TCanvas;
DHandle: HWND;
begin
DHandle:=GetDC(0);
if DHandle<>0 then
begin
   try
     DCanvas:=TCanvas.Create;
     try
       DCanvas.Handle:=DHandle;
       DCanvas.Font.Color:=clRed;
       DCanvas.Font.Size:=72;
       DCanvas.Brush.Style:=bsClear;
       DCanvas.TextOut(10, 10, 'Ein Schriftzug');
     finally
       DCanvas.Free;
     end;
    finally
      if ReleaseDc(0, DHandle)<>1 then
        RaiseLastOSError;
    end;
end
else
   RaiseLastOSError;
end;

RaiseLastOSError ist erst ab Delphi 6 verfügbar. Programmierer, die mit älteren Versionen arbeiten, müssen an dieser Stelle RaiseLastWin32Error verwenden.