In this code I would expect a call to ReleaseDC to happen in MyCanvas.Free, but this code runs fine, how come?
And what happens to TCanvas’ own DC?
var GlobalDC: THandle;
procedure TForm1.FormCreate(Sender: TObject);
begin
GlobalDC:= GetDC(0);
end;
function LoopMeOften(const X, Y: Integer): TColor;
var
MyCanvas: TCanvas;
begin
MyCanvas := TCanvas.Create;
MyCanvas.Handle := GlobalDC;
Result := GetPixel(MyCanvas.Handle, X, Y);
MyCanvas.Free;
end;
TCanvasdoes not have its own DC, it neither acquires nor releases a DC. Its descendantTControlCanvasdoes.From TCanvas.Handle Property