Ya lo he resulto, aqui teneis el codigo por si le hace falta a alguien:
void __fastcall TFormConsulta::MaskEdit2Change(TObject *Sender)
{
char* aux=new char[4];
aux=MaskEdit2->Text.c_str();
for (unsigned i=0;i<3;i++)
{
if (aux<'0'||aux>'9')
aux='0';
}
aux[3]='\0';
AnsiString tmp=aux;
int valor=tmp.ToInt();
if (valor>100)
MaskEdit2->Text="100%";
delete [] aux;
}