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

убить окно вызванное showmodal


Котэ

Вопрос

День добрый.

Делаю приложение клиент для android,  хотел узнать по поводу модального окна. 

Делаю форму входа. Использовал пример в showmodal из интернета. На форме входа два поля ввода, логин и пароль и кнопка вход. 

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

Для работы с сетью использую tcpclient из набора indy. С него данные читаются в отдельном потоке. 

При нажатие кнопки вход приложение данные отсылаются на сервер, а потом в потоке передаются в обработчик данных. Так вот как из обработчика данных закрыть эту форму входа. Если она вызвана их другого кода.

Пытался писать процедуру

procedure frmLogin. CloseFrm();

begin

modalresult := mrok;

end;

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

з.ы. Блин  прочитал все что написал , похоже на бред.

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

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

  • 0
  • Модераторы

1) Зачем использовать модальное окно?

2) можно завести глобальную булевную переменную и по её результату отдавать ModalResult

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

закрывается форма как обычно Form.Close(), если из потока TThread то нужен Synchronize,

если этот поток создавала Indy то на С это будет TIdNotify::NotifyMethod с хедером #include "IdSync.hpp"

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

сделал через глобальную переменную  showmodal := mrok;

 все равно форма висит

код такой

var
  LogIn: TFrmLogin;
begin
  LogIn := TFrmLogin.Create(nil);
  LogIn.ShowModal(
    procedure(ModalResult: TModalResult)
    begin
      if ModalResult = mrOK then
      begin

      end;

    end);

 

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

если я при нажатие на кнопку возвращаю modalresul:=mrok;

то форма закрывается.

а мне надо как то из сторонней функции убивать её

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

да. для этого случая совершенно нет необходимости делать showModal

да и при нажатии на кнопку нет необходимости делать асинхронность. лучше вариант показать Progress из библиотеки fgx и сделать все синхронно.

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

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

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

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

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

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

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

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

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

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

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