Delphi: Wie Canvas vom Desktop löschen?

Guten Tag,

ich zeichne mit Canvas folgendermaßen auf meinen Desktop:

procedure TForm1.Button1Click(Sender: TObject);
var
DCanvas: TCanvas;
DHandle: HWND;
begin
DHandle:=GetDC(0);
if DHandle0 then
begin
try
DCanvas:=TCanvas.Create;
try
DCanvas.Handle:=DHandle;
DCanvas.Pen.Color:=clRed;
DCanvas.Font.Size:=72;
DCanvas.Brush.Style:=bsClear;
DCanvas.MoveTo(0,0);
DCanvas.LineTo(500,500);
finally
DCanvas.Free;
end;
finally
if ReleaseDc(0, DHandle)1 then
RaiseLastOSError;
end;
end
else
RaiseLastOSError;
end;

Wenn ich diese Linie gezeichnet habe, wie kann ich sie dann wieder löschen?
Ist das überhaupt möglich?

Möglickeit A: Linie noch einmal zeichnen in Hintergundfarbe - wenn die Linie aber über andere Objekte führt geht das nicht
B: Canvas vor dem Zeichnen jeweils sichern - dann kann man Änderungen rückgängig machen wie z.B. in Paint.