Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.09.2012, 09:27   #1
Phantosmagor
Пользователь
 
Регистрация: 14.03.2012
Сообщений: 24
По умолчанию Конструкция Else if и чекбокс

имеется на поле:
1 чекбокс
2 Edit

Написал код:
Код:
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if
(CheckBox1.Checked=true)
then begin
Edit1.Enabled:=False;
Edit4.Enabled:=True;
end
else if (CheckBox1.Checked=false)
then
Edit1.Enabled:=True;
Edit4.Enabled:=False;
end;
Отрабатывает странно, хотя логика вроде деревянная. Т.е должно быть так:
Если чекбокс активирован - Edit1 -false Edit4-true
Если чекбокс не активирован - Edit1 - true Edit4 -false


Что происходит на самом деле:
1)Чекбокс не активирован - Edit1- True - Edit4 -False
2)Чекбокс активирован - Edit1 -False Edit4-False
3)Чекбокс Не активирован (снова) - Edit1 -True Edit4 -False
Т.е первый Edit он включает/выключает, а второй - остаётся в False. Ума не приложу, где ошибка.

Подскажите пожалуйста.
Phantosmagor вне форума Ответить с цитированием
Старый 27.09.2012, 09:31   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Нет begin после else if ... then. А лучше так:
Код:
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
  Edit1.Enabled:=not CheckBox1.Checked;
  Edit4.Enabled:=CheckBox1.Checked;
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 27.09.2012, 09:35   #3
Phantosmagor
Пользователь
 
Регистрация: 14.03.2012
Сообщений: 24
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Нет begin после else if ... then. А лучше так:
Код:
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
  Edit1.Enabled:=not CheckBox1.Checked;
  Edit4.Enabled:=CheckBox1.Checked;
end;

Действительно - намного короче получается конструкция, и эффективнее. Begin - действительно забыл.... Благодарю Вас.
Проблема решена.
Phantosmagor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавить чекбокс в инсталлятор luminary Фриланс 2 08.02.2012 14:12
Как программно включить чекбокс??? xpams HTML и CSS 2 08.01.2012 19:18
Чекбокс в заголовке грида и процедура Claster Помощь студентам 3 13.09.2011 11:20
Чекбокс soonner PHP 0 25.03.2011 17:59
чекбокс - поверх всех окон puz Компоненты Delphi 6 11.05.2007 17:58