GrayedCheckBox.pas 611 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. unit GrayedCheckBox;
  2. interface
  3. uses
  4. StdCtrls;
  5. type
  6. TGrayedCheckBox = class(TCheckBox)
  7. protected
  8. procedure Toggle; override;
  9. end;
  10. procedure Register;
  11. implementation
  12. uses
  13. Classes, Windows, SysUtils;
  14. procedure Register;
  15. begin
  16. RegisterComponents('Martin', [TGrayedCheckBox]);
  17. end;
  18. { TGrayedCheckBox }
  19. procedure TGrayedCheckBox.Toggle;
  20. begin
  21. case State of
  22. cbUnchecked: State := cbChecked;
  23. cbChecked:
  24. if AllowGrayed then State := cbGrayed else State := cbUnchecked;
  25. cbGrayed: State := cbUnchecked;
  26. end;
  27. end;
  28. initialization
  29. end.