Changer l'état de CheckBox sans appeler l'événement OnClick
Je me demande donc quand j'ai changer l'état de la Case à cocher
CheckBox->Checked=false;
Il appelle CheckBoxOnClick Cas , comment l'éviter ?
source d'informationauteur Cynede
Vous devez vous connecter pour publier un commentaire.
Vous pourriez entourent l'événement onClick de code avec quelque chose comme
Si vous ne voulez pas qu'il soit exécuté, mis myFlag pour faux et après la case à cocher état du changement de la définir à true.
Une autre option est de changer le protégé ClicksDisable de la propriété à l'aide d'un intercalaire de la classe comme ceci:
Dans les plus récentes versions de Delphi, vous pouvez utiliser la classe des aides pour ajouter cette fonctionnalité:
à l'aide de la classe helper pour un VCL
TCheckBox
:Juste pour être complet: UN FMX
TCheckBox
va se comporter de manière similaire (déclenchementOnChange
). Vous pouvez contourner ce problème en utilisant la classe helper:Avertissement: Merci, dummzeuch pour l'idée originale. Être conscient de l'habitude des conseils sur la classe des aides.
J'espère qu'il y a un bouton solution, mais vous pouvez stocker le courant de l'événement dans un TNotifyEvent var, puis définissez une Case à cocher.OnChecked à néant et ensuite le restaurer.
essayer de cette façon:
CheckBox.State := cbUnchecked;
travaille en Delphi, ce n'est pas le feuonClickEvent
autant que je sacheLa solution la plus Simple est de mettre votre onclick code dans l'événement onmouseup;