Home » Tipps & Tricks » Grafik » Zeichnen » Zeichnen auf den Desktop

Zeichnen auf den Desktop

Ü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.