Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#4
  Alt 30. Jun 2002, 02:17
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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat