На форме несколько edit'ов, несколько checkbox'ов и кнопка. Нужно сделать так, чтобы при изменении любого из едитов или чекбоксов, кнопка дезактивировалась (enabled:= false).
Замучил поисковики, но не могу найти информацию даже о том, как задать одно условие на несколько однотипных элементов. Это вообще возможно?
Примечание:
Вопрос решён. Надеюсь, он останется здесь и ещё кому-то поможет.
Во-первых, как я узнал, можно сделать по-простому. Написать обработчик события только для одного элемента, а для всех остальных в Событиях просто ВЫБРАТЬ его же из раскрывающегося списка (напротив OnChange или OnClick для edit'ов и checkbox'ов соответственно). Причём нестрашно, если первая процедура была написана, например, для эдита как OnChange - для чекбоксов, напротив OnClick, её всё равно можно будет выбрать, и она будет работать.
Во-вторых, вполне удобен способ, предложенный здесь участником ADR-007. Он применим, когда нужные события некоторых элементов УЖЕ были задействованы ранее (как у меня). Есть кое-какие ошибки в коде, но всё равно большое ему спасибо.
Вот проверенный рабочий кусок кода:
type
<...>
procedure FormCreate(Sender: TObject);
procedure MyOnChange (Sender: TObject);
<...>
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.OnChange:= MyOnChange;
Edit2.OnChange:= MyOnChange;
Edit3.OnChange:= MyOnChange;
CheckBox1.OnClick:= MyOnChange;
CheckBox2.OnClick:= MyOnChange;
CheckBox3.OnClick:= MyOnChange;
end;
procedure TForm1.MyOnChange (Sender: TObject);
begin
Form1.BitBtn1.Enabled:= false;
end;
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.