![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| Arex |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 2.6.2007 Репутация: нет Всего: нет |
Добрый день.
Требуется помощь. В сети существует много примеров с использованием CreateMessageDialog. Однако, везде используется Showmodal. Т.е. программа ожидает реакции пользователя. Задача состоит в том, чтобы вывести сообщение и продолжить работу ( используя Show а не Showmodal ), а при нажатии пользователем кнопки Ok в окне сообщения ( возможно нажатие произойдет через продолжительное время ), произвести действие. Собственно, вопрос как отследить нажатие mbOk на форме ? Типичный пример, ожидания реакции пользователя:
Это сообщение отредактировал(а) Rrader - 24.3.2010, 06:27 |
|||
|
||||
| former |
|
||||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 4 Всего: 17 |
Эта строка
противоречит этой (ОК и YES NO)
Окно диалога возвращает "модальный" результат. Выход - создай свой диалог и управляй им как хочешь. Это сообщение отредактировал(а) former - 24.3.2010, 08:55 -------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
||||
|
|||||
| Grag |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 22.12.2007 Где: Красноярск Репутация: нет Всего: нет |
Сделай как посоветовал Former, сделай свою форму диалога, выведи ее на экран, только не забудь разместить ее поверх всех окон, а то может затеряться.... А нужные действия выполняй в обработчике кнопки "Ok" этой формы...
|
|||
|
||||
| Arex |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 2.6.2007 Репутация: нет Всего: нет |
Противоречит ? В чем именно ? Вот пример, многократно тиражированный в сети. Взят отсюда: http://www.delphisources.ru/pages/faq/base...age_dialog.html
Так вот, если использовать Show ( без оператора case ) вместо Showmodal, то ответ от пользователя мы не ждем, а идем дальше как и требуется. Вопрос в том как отследить последующее нажатие на кнопку Ok на форме ? Форма есть, кнопка есть, а отследить невозможно ? |
||||
|
|||||
| former |
|
||||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 4 Всего: 17 |
Диалог создаешь с кнопкой OK, а проверяешь YES и NO. В статье (по ссылке) следующий код
А ты необходимые действия (например вызов процедуры или функции) выполняй из формы диалога при нажатии на кнопку. Сами процедуры и функции могут располагаться в других модулях (при необходимости). Это сообщение отредактировал(а) former - 24.3.2010, 12:59 -------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
||||
|
|||||
| Arex |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 2.6.2007 Репутация: нет Всего: нет |
Согласен на 100% - недоглядел. Но по большому счету, это отношения к делу не имеет. Я вот о чем говорю , в случае если мы указывает в коде
до действий мы не доходим пока пользователь не отмерзнет и не нажмет что нибудь а в случае
мы переходим к действиям, как и нужно, НО если пользователь отмерзнет только через полчаса и нажмет таки кнопку Ok ( или Yes , это не важно ) на форме, то как выполнить какие-либо действия. Вот в чем вопрос. Если возможно, приведите код как именно отследить нажатие на кнопку на появившейся после Show форме, а как ее назвать - Ok или Yes это дело десятое. Спасибо. |
||||||
|
|||||||
| former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 4 Всего: 17 |
-------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |