[Delphi7, Indy] Показ формы в обработчике OnCommand
OnCommandGetвыполняется в VCL-потоке?
Я уже чуток разобрался и вник.
в Индях на каждый сетевой компонент крутится собственный тред. посему VCL-вызовы из индюшных тредов как-то хреново ходят.
ладно, извратимся по-другому.
ладно, извратимся по-другому.а там разве метода Synchronize нет? (впрочем, вроде можно извратиться и вызвать даже если его нет)
и где вызывать Synchronize если мне нужно Form.ShowModal?
и где вызывать Synchronize если мне нужно Form.ShowModal?У тебя первый параметр - наследник TThread.
Я так понимаю, тебе нужно создать приватный метод DoShowModal, который будет показывать окошко (ну и вообще - взаимодействовать с формой) и вызвать в обработчике OnCommandGet AThread.Synchronize(DoShowModal);
Всё равно возврат из обработчика не имеет смысла до ответа.
Я что-то не слышал, чтобы запрещалось вызывать ShowModal из synchronize, в хелпе об этом ни слова вроде...
зы: вроде-бы вполне стандартная практика взаимодействия с VCL-потоком - через Synchronize.
Оставить комментарий
yolki
Есть IdHTTPServer, у него на в обработчике OnCommandGet показывается форма (ShowModal)..Автором этой странной идеи задумано примерно так:
Пользователь через браузер чё-то спрашивает (GET /bla-bla?param=vale а другой пользователь на стороне сервера видит выскакивающую форму, в которую чё-то вводит и жмёт ОК. клиент получает ответ..
Так вот - странно себя формочка ведёт на стороне сервера. в первый раз показывается, а вот во второй - хм.. модальная кнопка "ОК" пропадает
кто может что-нибудь объяснить?