Kopiuje się wszystko, ale funkcja CopyRect w Twoim kodzie, odrysowuje jedną grafikę na drugiej, więc nowa grafika wczytana do obszaru docelowego zasłania - wymazuje grafikę, która została tam wcześniej narysowana. Musisz sobie uzmysłowić, że ani klasa TCanvas, ani TBitmap i w zasadzie cała klasa TGraphics nie obsługują warstw, nie możesz więc umieścić jednej grafiki na drugiej, gdyż to jest tak jakbyś rysował na jednej kartce papieru i zawsze jak narysujesz na niej nowy obrazek to stary zniknie i nie możesz do niego powrócić nawet gdybyś użył gumki, gdyż gumka wymaże wszystko do białego papieru.W tym konkretnym przypadku zamiast funkcji
CopyRect lepiej jest użyć funkcji
Draw.
Prosty przykład z umieszczaniem obok siebie trzech bitmap za pomocą funkcji Draw bez wektorów:- Kod: Zaznacz cały
 Graphics::TBitmap *bitmapa = new Graphics::TBitmap;
 for(int i = 0; i < 3; i++)
 {
  String fileName = "c:\\image" + (String)(i + 1) + ".bmp";
  bitmapa->LoadFromFile(fileName);
  Image1->Canvas->Draw(i * bitmapa->Width, 0, bitmapa);
 }
 delete bitmapa;
Â
Ten sam efekt można uzyskać za pomocą funkcji
CopyRect, trzeba jednak prawidłowo ustawić współrzędne płótna docelowego:
- Kod: Zaznacz cały
 Graphics::TBitmap *bitmapa = new Graphics::TBitmap;
 for(int i = 0; i < 3; i++)
 {
  String fileName = "c:\\image" + (String)(i + 1) + ".bmp";
  bitmapa->LoadFromFile(fileName);
  Image1->Canvas->CopyRect(
  Rect(i * bitmapa->Width, 0, (i * bitmapa->Width) + bitmapa->Width, bitmapa->Height),
  bitmapa->Canvas,
  Rect(0, 0, bitmapa->Width, bitmapa->Height)
                          );
 }
 delete bitmapa;
Â