Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Значение параметра Sender в ComboBoxChange(Sender: TObject) [D7]


Karlson ©   (2005-05-30 20:48:00) 

Добрый вечер. Подскажите, пожалуйста, что передается в качестве параметра Sender в процедуре ComboBoxChange(Sender: TObject).
Задача следующая, есть комбобокс1 (например с перечнем месяцев) и комбобокс2 (перечень номеров дней). Из комбобокс1 выбирается значение (комбобокс2 в это время неактивен). Как только значение выбрано (например май) комбобокс2 становится активными  его элементы от 1 до 31 (при выборе, например, февраля, соответственно от 1 до 28). То есть елементы комбобокс2 зависят от выбраного элемента в комбобокс1. Но бывают ситуации, когда я точно знаю, что буду иметь дело с ноябрем, например. Я делаю выбранным в комбобокс1 нужный мне элемент и запускаю процедуру ComboBox1Change, но как передать именно ноябрь... или Sendera должно хватить?... У меня не хватает видно... Так как курсорчик принимает вид часиков, то есть процедура ComboBox1Change что-то выполняет. Кроме того, я использую свойство комбобокса2 автоматически выпадать (DroppedDown := True). Список элементов появляется рядом с комбобоксом...
Помогите пожалуйста. Извините за долгий рассказ. Заранее спасибо.


evvcom   (2005-05-31 08:36:00) [1]


> что буду иметь дело с ноябрем, например. Я делаю выбранным
> в комбобокс1 нужный мне элемент и запускаю процедуру ComboBox1Change,
> но как передать именно ноябрь...

ComboBox1.ItemIndex := 10; // это ноябрь, если в комбике месяца по порядку и только месяца :)
ComboBox1Change(ComboBox1); // вызов обработчика

// в обработчике
if TComboBox(Sender).ItemIndex = 10 then // если ноябрь и если уверен, что в качестве Sender всегда передается TComboBox, если не уверен, см. [1]


Семен Сорокин   (2005-05-30 20:53:00) [2]

если не вызывешь вручную ComboBoxChange и не передаешь ничего левого, то там (Sender) содержится ссылка на ComboBox, в котором происходят изменения, проверить можно так:

if Sender is TComboBox then
 месяц = TComboBox(Sender).Text


Наверх

Титульная страница Поиск, карта сайта Написать письмо