Moin Privateer,
einen RadioButton setzen/löschen kannst Du auch so, ohne das das OnClick ausgelöst wird.
Code:
SendMessage(RadioButton1.Handle,BM_SETCHECK,BST_CHECKED,0);
SendMessage(RadioButton1.Handle,BM_SETCHECK,BST_UNCHECKED,0);
Nachteil:
Du kannst den Zustand des RadioButtons nicht mit der Eigenschaft Checked abfragen, da diese nur durch die Notification Message BN_CLICK gesetzt wird, was aber wiederum ein OnClick auslösen würde. Also auch hier die Abfrage via
API:
Code:
SendMessage(RadioButton1.Handle,BM_GETCHECK,0,0) = BST_CHECKED
SendMessage(RadioButton1.Handle,BM_GETCHECK,0,0) = BST_UNCHECKED
Diese Messages können ebenso für CheckBoxen verwendet werden.
Wichtig:
Bei RadioButtons, muss man dann auch selber die Verwaltung der verschiedenen Zustände kümmern. Ein Setzen auf Checked setzt nicht automatisch den zuletzt gewählten auf unchecked.
Ach ja:
Da ich schon erlebt habe, dass die Methode Perform nicht unbedingt immer die gewünschte Wirkung hat, würde ich grundsätzlich die Verwendung von SendMessage empfehlen.