Изменить поведение при нажатии для TRadioButton или TComboBoxDelphi , Компоненты и Классы , ФлажкиИзменить поведение при нажатии для TRadioButton или TComboBox
Оформил: DeeCo // Q: It appears that programatically setting Item.Index for the Radio Button // fires the onClick event. It also appears doing the same for the // ComboBox does NOT fire the OnClick event. Does another property the two // control effect this behavior. // A: No, it is caused by the way Windows sends the notifications that fire the // event when the control state is changed by a program action. // Q: I have an instance where I need each of // the control to exhibit the opposite behavior. // A: For a TRadiobutton you can disconnect the OnClick handler, change the // state, then reconnect the handler. procedure ChangeRadiobuttonState(ARadiobutton: TRadiobutton; checkit: Boolean); var oldhandler: TNotifyEvent; begin oldhandler := ARadiobutton.Onclick; ARadiobutton.Onclick := nil; ARadiobutton.Checked := checkit; ARadiobutton.OnClick := oldhandler; end; // To make the combobox "click" after setting the item index simply call its // Click method. The control inherits this method from TControl, but it is // protected. So you need a bit of hoop-jumping: Type TComboCracker = class(TCombobox); procedure SetComboboxIndex(ACombobox: TCombobox; Index: Integer); begin ACombobox.ItemIndex := Index; TCombocracker(ACombobox).Click; end; Статья Изменить поведение при нажатии для TRadioButton или TComboBox раздела Компоненты и Классы Флажки может быть полезна для разработчиков на Delphi и FreePascal. Комментарии и вопросыМатериалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |