Try this instead, as far as I can remember this is the correct form. Though, why do you keep multiplying the size by 4? That is beyond me a little, since I'm trying to figure out why you need 4 times the size of the one array.

Code:
   glVertexPointer(3, GL_FLOAT, 0, Pointer(Cloud.vBuffer^[0]));
   glColorPointer(4, GL_FLOAT, 0, Pointer(Cloud.cBuffer^[0]));
   glTexCoordPointer(2, GL_FLOAT, 0, Pointer(Cloud.tBuffer^[0]));
This just gets the pointer to the first item like before, rather than the array. C prefers it this way AFAIK.