Edito: jajaja, ahora que está todo listo llego yo a rematarlo
Despues de todo el rollo, he creado un TcheckBox que no tiene ese comportamiento. Ha sido más facil de lo que creía. Os dejo la unidad.
Código Delphi
[-]
unit CheckBoxNoClick;
interface
uses
Windows, Messages, SysUtils, Classes, Controls, StdCtrls;
type
TCheckBoxNoClick = class(tcheckBox)
private
protected
public
published
procedure SetChecked(Value:Boolean);
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Standard', [TCheckBoxNoClick]);
end;
procedure TCheckBoxNoClick.SetChecked(Value: Boolean);
begin
try
clicksdisabled := True;
inherited;
finally
ClicksDisabled:= False;
end;
end;
end.
Cuando se quiera por código modificar el checked, se llama a SetChecked, que tiene el truco de inhabilitar el evento Click.
Saludos