Mensaje    Asunto: detectar de la rejilla en pantalla Responder citando

pinto una rejilla con este codigo

Código:
   for (int y = 0; y < 15; ++y)
   {
      for (int x = 0; x < 13; ++x)
      {


         TPoint pos = PosPt(x, y);
/* --> */   celda[x][y].rect = TRect(pos.x, pos.y+80, pos.x + hexbitmap1->Width, pos.y + hexbitmap1->Height);
         celda[x][y].flag = false;

         if(color == 1) TABLERO->Canvas->Draw(pos.x, pos.y+80, hexbitmap1->Picture->Graphic);
         else if(color == 2) TABLERO->Canvas->Draw(pos.x, pos.y+80, Image20->Picture->Graphic);




      }
   }


hasta ahi todo bien, la pinta sin problemas.....

el problema viene cuando intento detectar la casilla de pantalla seleccionada con el raton encima (coordenadas de CELDA) segun un codigo que me proporcionó Leo que es este que va en el evento OnMouseMove de la imagen donde pinta el tablero

Código:
   static int oldCol = 0, oldRow = 0;

   // Busca celda
   bool found = false;
   int col, row;
   for (int y = 0; y < 15 && !found; ++y)
   {
      for (int x = 0; x < 13; ++x)
      {
         TPoint pos = PosPt(x, y);
         if (PtInRect(celda[x][y].rect, Point(X, Y)) &&
            !hex_small_mask->Picture->Bitmap->Canvas->Pixels[X - pos.x][Y - pos.y])
         {
            found = true;
            col = x;
            row = y;
            if (col == oldCol && row == oldRow) return;
         }
      }
   }

   Caption = found ? String().sprintf(L"%d, %d", col, row) : String("<no>");

   oldCol = col;
   oldRow = row;


Ah si, el pintado le sumo +80 al pos.y para que deje un margen por encima y no lo pinte al inicio de la imagen (0,0)

creo que el problema tiene facil solucion pero no acabo de dar con ello.....