Перейти к содержанию
Fire Monkey от А до Я
  • 0

Почему не реагируют кнопки на второй форме в цикле обработки сообщений?


VladimirS

Вопрос

На второй форме лежит кнопка, по нажатию на которую (обработчик) устанавливается ModalResult

procedure TForm1.Button1Click(Sender: TObject);
begin
  Form2.Show;
  while Form2.ModalResult = mrNone do
    Application.ProcessMessages;
  Form2.Hide;
end;

Почему после показа формы и ухода в цикл обработки сообщений (цикл крутится, проверял), в код обработчика кнопки не заходит?

 

ЗЫ. запускаю под Андроидом, XE7

Изменено пользователем VladimirS
Ссылка на комментарий

Рекомендуемые сообщения

  • 0

Ура, пара часов отладки помогли найти ответ на вопрос!

После нажатия на кнопку начинается цикл обработки событий ввода, который должен закончиться

  event := nil;
  while AInputQueue_getEvent(app^.inputQueue, @event) >= 0 do
  begin
    if Assigned(app^.onInputEvent) then
      handled := app^.onInputEvent(app, event);  >>> Собственно здесь вызывается обработчик нажатия кнопки
    AInputQueue_finishEvent(app^.inputQueue, event, handled);
  end;

Но т.к. возврата из обработчика кнопки нет, то новые события ввода не поступают.

 

ЗЫ. ничего, что я публикую малюсенькие фрагменты исходников Дельфи?

Ссылка на комментарий
  • 0

а представьте, что надо модальную форму показать в цикле?

И использовать данные с этой формы в том же цикле.

Изменено пользователем VladimirS
Ссылка на комментарий
  • 0

не могу представить :) но попробую. я бы сделал так. форме присвоил бы поле ИД с кодом прохода. в процедуре объявленной как колбэк проверял бы это поле, увеличивал значение и вызывал ее повторно с новыми заполненными данными относительного этого ИД. и после нужного ИД был бы выход. я думаю сработало бы. 

Ссылка на комментарий
  • 0

какой-нибудь псевдокод можете написать для следующей ситуации?

 

пользователь регистрирует товар.

Если в настройках товара (скажем, джинсы) указано, что у него могут быть дополнительные характеристики (размер, цвет)

Соответственно, если это товар с доп. характеристиками, то надо пользователя запросить указать каждую характеристику.

потом еще сделать несколько манипуляций (это может быть дополнительно запрос цены, количества - в зависимости от настроек программы),

потом добавить товар с данными в документ продажи.

Ссылка на комментарий
  • 0

это все делается на одной форме. самый простой вариант это накидать все варианты на форму и не используемые скрыть. а при выборе типа одежды показать поля в которым можно выбрать цвет и размер. при более сложном варианте оэто создать панель не видимую и в зависимости от типа выбора накидывать туда компоненты. 

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...