In der Regel erfolgt das Malen im OnPaint Event.
Wenn man jetzt im OnPaint des MainBackgroundImages ein SpectrumBackgroundImage.Invalidate aufruft, sorgt man dafür, dass das neu gezeichnet wird.
Und im OnPaint des SpectrumBackgroundImage holt man sich das darunterliegende Bild.
Um die Koordinaten herauszufinden gibt es im Übrigen ClientToScreen und ScreenToClient Funktionen.
http://docwiki.embarcadero.com/Libra...ClientToScreen
(Sollte mit FPC analog funktionieren)
@Perlsau
Das Bild ist beim ersten OnShow schon geladen aber noch nicht gezeichnet, denn der Event kommt direkt vor dem Anzeigen.
Wenn man jetzt vom Canvas etwas kopiert, auf dem noch nichts gezeichnet wurde, dann kopiert man nichts