Страница 1 из 1

Вопрос по обработке изменения ComboBox

СообщениеДобавлено: 12.12.2012 17:22:17
PapaNT
Уважаемые коллеги, недавно начал осваивать визуальное программирование. Помогите, пожалуйста, разобраться с ComboBox.

Суть беды в следующем:
1. В ComboBox по определенным правилам нормально добавляю элементы;
2. После хочется знать, что некий n-ый или m-ый элемент выбран, дабы произвести некие дальнейшие телодвижения.

Каким событием проверять изменение состояния выбора элементов?

Заранее спасибо!

Re: Вопрос по обработке изменения ComboBox

СообщениеДобавлено: 12.12.2012 19:55:02
Mr.Smart
Выбор элемента:
Код: Выделить всё
procedure TForm1.ComboBox1Change(Sender: TObject);

Индекс элемента:
Код: Выделить всё
ComboBox1.ItemIndex

Re: Вопрос по обработке изменения ComboBox

СообщениеДобавлено: 12.12.2012 21:10:17
PapaNT
А для radiogroup аналогично?
В списке стандартных событий нет Change...

Re: Вопрос по обработке изменения ComboBox

СообщениеДобавлено: 12.12.2012 21:13:37
Mr.Smart
Там событие OnClick срабатывает.

п.с. Пробуйте и экспериментируйте....

Re: Вопрос по обработке изменения ComboBox

СообщениеДобавлено: 12.12.2012 21:25:03
PapaNT
Словил ошибку:
Error: Forward declaration not solved "TMainForm.RadioGroup_ToDoClick(Sender : TObject)" :(

Re: Вопрос по обработке изменения ComboBox

СообщениеДобавлено: 12.12.2012 21:32:21
Mr.Smart
У вас не совпадают декларации (описания) методов в классе и реализации.

Re: Вопрос по обработке изменения ComboBox

СообщениеДобавлено: 13.12.2012 11:25:44
PapaNT
Попробовал объявить Click через lfm-файл - ошибка использования несуществующего события.

Буду "тупо" решать через таймер...

Re: Вопрос по обработке изменения ComboBox

СообщениеДобавлено: 13.12.2012 12:04:33
Mr.Smart
А что мешает воспользоваться IDE Lazarus?

Re: Вопрос по обработке изменения ComboBox

СообщениеДобавлено: 13.12.2012 12:23:39
PapaNT
Отсутствие события Change. По крайней мере в версии лазаря 1.0 его нет.

Re: Вопрос по обработке изменения ComboBox

СообщениеДобавлено: 13.12.2012 12:25:35
Mr.Smart
Так используйте событие Click, оно как раз происходит при смене элемента.

Re: Вопрос по обработке изменения ComboBox

СообщениеДобавлено: 13.12.2012 12:41:31
PapaNT
С Combobox разобрался - там клик работает.
-------------------------------------------------------
У Radiogroup он работает только при клике на области не занятой текстом и радиокнопками - пока страдаю с таймером.

Восстановленный алгоритм обработки OnClick:
сперва выбираю нужный элемент, потом кликаю по свободному пространству зарезервированному под RdioGroup и только тогда происходит с обработка события.

Надо чтобы событие обрабатывалось по ChangeSelectet элемента с номером n.

Re: Вопрос по обработке изменения ComboBox

СообщениеДобавлено: 13.12.2012 12:57:53
Mr.Smart
Пример

Re: Вопрос по обработке изменения ComboBox

СообщениеДобавлено: 13.12.2012 22:56:28
andrey_k3
У RadioGroup обработка смены выбранного элемента - по OnSelectionChanged
Код: Выделить всё
procedure TForm1.RadioGroup1SelectionChanged(Sender: TObject);
begin
  case RadioGroup1.ItemIndex of
    0: Label1.Caption:= 'первый';
    1: Label1.Caption:= 'второй';
    2: Label1.Caption:= 'третий';
  end;
end;