this->serialPort1->Write("{Colours[0],Colours[1],Colours[2]}");
Technically that would sort of work but you're sending a heck of a lot of characters for no reason and you're not actually indexing into the array so the numbers are hardcoded. Something more like
this->serialPort1->Write("{",Colours[0],",",Colours[1],",",Colours[2],"}");
would be better, depending on how Write() works that will send the send characters in a manner close to what Rob suggested. Say
{23,34,56}
Then you write some receiving code that waits for a "{" and parses the byte stream until you get a "}".
How does Write() work. does
this->serialPort1->Write(123);
send 123 as a binary number or '1' '2' '3' as three characters.
Rob