DC is vom Typ HDC
HDC ist ein
Handle ... also quasi ein Pointer
Und haben Pointer Methoden?
Nein.
Wo kommt denn das m_hWnd urplötzlich her?
(das gibt's im Original aber nicht)
Und von wo kommt m_hIcon?
dc(this) ist quasi das HDC vo dem Fenster im Self
diese SetDC(Self.Handle)
Aber warum nicht Self.Canvas verwenden, welches dieses kapselt?
Statt dem m_hIcon ein TIcon und dann einfach nur noch im OnPaint
Canvas.Draw((ClientHeight - Icon.Height) div 2, (ClientWidth - Icon.Width) div 2, Icon)
.
und für das WM_ICONERASEBKGND ... entweder das Icon nicht transparent zeichnen lassen oder z.B. über Canvas.FillRect den Hintergrund löschen.