![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Значение параметра 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