|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - [решено] События при включении и отключении checkBox |
|
Delphi - [решено] События при включении и отключении checkBox
|
Новый участник Сообщения: 4 |
Добрый день, помогите пожалуйста.
Имеется кусок кода. Нужно чтобы: При включении checkBox отображались все компоненты, а при снятии флажка в этом же checkBox они пропадали, т.е становились False. Заранее спасибо. P.S. Как включать разобрался, как отключить не могу понять(( if CheckBox1.Checked = False не срабатывает почему то... может не так реализовал сам код ? |
|
Отправлено: 17:16, 02-04-2015 |
Ветеран Сообщения: 20133
|
Профиль | Отправить PM | Цитировать ziiiro, забыл ужо всё, но что то кажется что условие надо продолжить. Извиняюсь если глупость сморозил, но лет 7 не брал в руки шашки
![]() begin if CheckBox1.Checked True then Label38.Visible:=True; Memo1.Visible:=True; Label3.Visible:=True; Label10.Visible:=True; Label17.Visible:=True; ComboBox2.Visible:=True; Label38.Visible:=True; else Label38.Visible:=False; Memo1.Visible:=True; Label3.Visible:=True; Label10.Visible:=False; Label17.Visible:=False; ComboBox2.Visible:=True; Label38.Visible:=False; end; begin // Обратите внимание на отсутствие ';' после предложения 'then' if False then ShowMessage('True') Else ShowMessage('False'); // Вложенные условные операторы - Delphi заметно управляют ассоциациями if true then if false then ShowMessage('Внутренний then') Else ShowMessage('Внутренний else') Else ShowMessage('Внешний else') end; |
------- Последний раз редактировалось yurfed, 02-04-2015 в 17:43. Отправлено: 17:36, 02-04-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Цитата yurfed:
[Error] Unit1.pas(163): ';' not allowed before 'ELSE' Там видимо как то по другому прописываться должно... Не могу понять, как ) yurfed, Попробовал так На код не ругается, но при запуске при нажатии на CheckBox ничего не происходит ... при включении и отключении флажка |
|
Последний раз редактировалось ziiiro, 02-04-2015 в 17:53. Отправлено: 17:46, 02-04-2015 | #3 |
Ветеран Сообщения: 20133
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 17:57, 02-04-2015 | #4 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Я скорее всего туплю...
end поставил так как до else идут перечисления через ';' если после этого перечисления ставить else то ошибка, если убрать ";" то тоже ошибка yurfed, Я скорее всего туплю... end поставил так как до else идут перечисления через ';' если после этого перечисления ставить else то ошибка, если убрать ";" то тоже ошибка |
|
Отправлено: 19:16, 02-04-2015 | #5 |
Ветеран Сообщения: 20133
|
Профиль | Отправить PM | Цитировать ziiiro, забирай пример.
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) lbl1: TLabel; chk1: TCheckBox; procedure chk1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.chk1Click(Sender: TObject); begin if chk1.Checked then lbl1.Visible:=True //Чекбокс отмечен else lbl1.Visible:=False; //Чекбокс пустой end; end. |
------- Последний раз редактировалось yurfed, 09-04-2023 в 18:09. Отправлено: 03:38, 03-04-2015 | #6 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать yurfed, Спасибо)
procedure TForm1.CheckBox1Click(Sender: TObject); begin if checkBox1.Checked then begin Label38.Visible:=True; Memo1.Visible:=True; Label3.Visible:=True; Label10.Visible:=True; Label17.Visible:=True; ComboBox2.Visible:=True; Label38.Visible:=True; end else if checkBox1.Checked = False then begin Label38.Visible:=False; Memo1.Visible:=False; Label3.Visible:=False; Label10.Visible:=False; Label17.Visible:=False; ComboBox2.Visible:=False; Label38.Visible:=False; end; end; |
Отправлено: 08:04, 03-04-2015 | #7 |
![]() Ветеран Сообщения: 1803
|
Профиль | Отправить PM | Цитировать Можно сделал и по иному.... это расширит количество возможных комбинаций при необходимости и сократит код при повторных вызовах
........ procedure EnabledElm(mo: Boolean; lb: Boolean; cb: Boolean); // для примера три компонента implementation ........ {процедура: EnabledElm Входные параметры: mo: Boolean; lb: Boolean; cb: Boolean Результат: изменение свойства Enabled, в зависимости от условия} procedure TMain.EnabledElm(mo: Boolean; lb: Boolean; cb: Boolean); begin Memo1.Enabled := mo; Label1.Enabled := lb; ComboBox1.Enabled := cb; end; Применение // все однотипно if checkBox1.Checked then EnabledElm(False, False, False) else EnabledElm(True, True, True); // раздельно if checkBox1.Checked then EnabledElm(True, False, False) else EnabledElm(False, False, True); |
------- Последний раз редактировалось opel431, 05-04-2015 в 17:30. Отправлено: 10:11, 05-04-2015 | #8 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
EventID - Уведомление Ист. события: HHCTRL Категория события: Отсутствует. Код события: 1903 | cleric1985_n | Устранение критических ошибок Windows | 7 | 27-11-2015 16:14 | |
Разное - Смена разрешения при отключении монитора | ivankislov | Microsoft Windows 7 | 4 | 15-12-2011 17:38 | |
HDD - [решено] Здоровье жесткого диска при частом включении\отключении ПК. | 9073 | Хочу все знать | 7 | 03-01-2010 23:33 | |
При отключении подключения произошла ошибка | KALABROD | Сетевые технологии | 4 | 01-03-2006 17:10 |
|