|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.10.2009, 15:54 | #1 |
Пользователь
Регистрация: 19.06.2008
Сообщений: 32
|
Как обойтись без события OnActivate?
Есть программа, которая при запуске должна узнать имя компьютера, на котором запустилась. Изначально программа запускается скрытно, т.е Application.ShowMainForm := False;. В программе две формы. Если имя одно - то программа показывает первую форму, если другое, то не показывает ни одной, создаёт сокет и скрытно ожидает подключения. После подключения показывает вторую форму.
Но как это сделать? Проблема со вторым случаем. В событии OnCreate (первой формы, так как она главная) узнаю имя компьютера, создаю сокет и начинаю ожидание подключения. Подключение происходит и мне надо сделать видимой вторую форму. Но из OnCreate первой формы я не могу этого сделать. Событие OnActivate мне не доступно, так как ни одна форма не активируется. Что-то ничего нормального в голову не приходит. Люди грамотные, подскажите, пожалуйста, как быть. Последний раз редактировалось _Инженер_; 01.10.2009 в 16:21. |
01.10.2009, 15:59 | #2 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
form2.show не працюэ?
имхо создали перед этим ее?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
01.10.2009, 16:23 | #3 |
Пользователь
Регистрация: 19.06.2008
Сообщений: 32
|
Я не могу делать какие-либо действия со второй формой из TForm1.FormCreate.
|
01.10.2009, 16:49 | #4 | |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
и не делайте...
вам ведь надо вызвать form2 после подключения? вот и вызывайте form2.show по окончании сий процедуры и еще... Цитата:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation Последний раз редактировалось raxp; 01.10.2009 в 17:01. |
|
01.10.2009, 17:23 | #5 |
Пользователь
Регистрация: 19.06.2008
Сообщений: 32
|
Я создаю блокирующий сокет в TForm1.FormCreate. В этой же процедуре ожидается подключение. После подключения начинается обработка полученных данных, в процессе которой надо отобразить вторую форму. Где делать эту обработку? Если продолжать её делать в TForm1.FormCreate, то не могу отобразить вторую форму. Если дать завершиться TForm1.FormCreate, то как потом на автомате продолжить обработку данных?
А сделать вторую форму главной (вы ведь имели ввиду это?) я не могу. Тогда я поимею аналогичные проблемы в первом случае. Если только не отображать вторую (главную) форму, переходить к TForm2.FormActivate, а в ней прятать вторую форму и отображать первую - как-то оно несколько через зад....но работать, наверное, будет....попробую |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обойтись без таймера | Pedro | Общие вопросы Delphi | 1 | 20.11.2008 21:20 |
Как генерировать события от мышки? | Serejka | Общие вопросы Delphi | 5 | 01.11.2008 13:48 |
Как заставить компонент TTrackBar обрабатывать события мыши? | Никки | Общие вопросы Delphi | 5 | 29.08.2008 14:17 |
как обрабатывать события с клавы? | proglamer | Паскаль, Turbo Pascal, PascalABC.NET | 13 | 25.10.2007 11:41 |