Revisando el código fuente de los CheckBox vemos que, en efecto, al asignar la propiedad Check (o State), se llama al procedimiento Click, a menos que la propiedad ClicksDisabled esté en
true. Desafortunadamente dicha propiedad está protegida pero puedes usar el truco del "casting a un descendiente de palo":
Código:
type
THackCheck = class(TCheckBox);
y cambiar el valor al crear el formulario:
Código:
THackCheck(CheckBox).DisableControls := true;
En la prueba que hice funciona bien aunque es contrario a lo que indica la documentación que dice que si DisabledClicks está en
true el control no acepta "clicks" pero sí que los acepta.
// Saludos