Страница 1 из 1
Проверить если кнопка нажата на другой форме
Добавлено: 09.09.2015 13:16:23
jenny
Всем здравствуйте, возник вопрос. Хотелось бы проверить если кнопка нажата на другой форме. Знаю ответ возможно легкий, но я в этом новичок

. Пыталась что то вроде этого:
Код: Выделить всё
if Form2.button.click = true then
begin
function...
end;
но тут выскакивает ошибка. Очень нужна ваша помощь

Re: Проверить если кнопка нажата на другой форме
Добавлено: 09.09.2015 14:46:41
serg_iv
а почему не ловите событие от той кнопки, которая на другой форме?
Re: Проверить если кнопка нажата на другой форме
Добавлено: 09.09.2015 15:09:27
jenny
дело в том что при нажатии на кнопку 1 на форме А выскакивает форма Б со всеми функциями, при нажатии на кнопку 2 выскакивает так же форма Б но с ограниченными функциями, например скрыты пару strgrid's или memo's. Так вот я думала на форме Б проверять нажата ли кнопка и например на методе OnFormShow, при нажатии определенной кнопке на форме А скрывать ненужные функции...
Re: Проверить если кнопка нажата на другой форме
Добавлено: 09.09.2015 16:02:49
Лекс Айрин
jenny, имхо, слишком запутанно. Проще, просто в обработчике кнопок предусмотреть сокрытие/отображение нужных компонент. Если неохота чтобы это видели пользователи, то запускайте форму скрытой, а после окончания подготовительной работы отображайте.
Re: Проверить если кнопка нажата на другой форме
Добавлено: 10.09.2015 00:11:26
wavebvg
Ну в Lazarus-е есть цикл обработки сообщений. Можно перехватить все сообщения приложения, только для этого придется дописывать текущую реализацию виджетов или писать грубый хак для DeliverMessage. Можно переопределить WndProc, к примеру. Все это просто, но некрасиво.
Лучше завести состояния у диалога с настройками и выставлять состояния перед показом формы.
Re: Проверить если кнопка нажата на другой форме
Добавлено: 10.09.2015 06:42:20
Снег Север
jenny писал(а):дело в том что при нажатии на кнопку 1 на форме А выскакивает форма Б со всеми функциями, при нажатии на кнопку 2 выскакивает так же форма Б но с ограниченными функциями, например скрыты пару strgrid's или memo's. Так вот я думала на форме Б проверять нажата ли кнопка и например на методе OnFormShow, при нажатии определенной кнопке на форме А скрывать ненужные функции...
В профессионально сделанных программах реализуют именно так, как написал выше
Лекс Айрин - в вызывающем модуле, по нажатию кнопки, показывают или скрывают компоненты на вызываемой форме. Напрямую, или вызовом соответствующей функции из вызываемого модуля перед показом его формы.