V Delphi se taky nic nedela "samo". Není tam zadne automaticke uvolnovani, jako v C#, zadne garbage collectory.
Je na tobe, abys to napsal v poradku.
V C++ si taky predavas ukazatele na objekty. Pokud si predas ukazatel, na jinem miste ten objekt uvolnis a budes se k nemu snazit pristupovat, dopadnes stejne - access violation.
TCanvas (platno) je jen objekt, ktery umoznuje vykreslovani. Pokud bys to delal v C++, budes neco takoveho potrebovat taky, pokud to budes chtit vizualizovat.