Hallo Rainer,
ich hab mich mal in die Materie eingearbeitet. Und will bloß mal ein Paar Stichworte als Erklärungsansatz abliefern:
Eine TPaintBox ist kein WinControl und hat somit keine eigene Canvas. TPaintbox.Canvas liefert dir immer nur das
Handle
des übergeordneten Controls. In deinem Fall ein TForm oder TPanel.
Ein TControl holt sich den DeviceContext des Parents und setzt bereits Viewport und ClipRect.
Der Standard MapMode ist MM_TEXT.
Beim ändern des MapModes wird der ViewPort auf 0,0 zurückgesetzt (d.h. auf die linke obere Ecke des Formulars bzw Panels).
und hier noch ein
link zur GDI
Vielleicht hilft dir das was
Gruß
Marco