![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Участник клуба Подтвердите свой е-майл
Регистрация: 26.01.2008
Сообщений: 1,898
|
![]()
Как сделать чтобы после открытия Unit1 сразу же открылся Unit2?
|
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 25.05.2008
Сообщений: 75
|
![]()
Другая форма чтоли?
Form2.Show; или Form2.ShowModal; |
![]() |
![]() |
![]() |
#3 |
Участник клуба Подтвердите свой е-майл
Регистрация: 26.01.2008
Сообщений: 1,898
|
![]()
Я так пробовал. Говорит Access violation at adress 004C30D6 in module 'Project.exe'. Read of address 00000000. Тоесть надо чтобы Unit2 сам окрылся, а не когда его вызовет юзер.
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 25.05.2008
Сообщений: 75
|
![]()
Попробуйте не на событии onCreate а на onActivate. У меня заработало.
|
![]() |
![]() |
![]() |
#5 |
Участник клуба Подтвердите свой е-майл
Регистрация: 26.01.2008
Сообщений: 1,898
|
![]()
Спасибо действительно так работает.
|
![]() |
![]() |
![]() |
#6 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
![]()
Попробовать то можно, вот только неплохо бы знать почему не работало )
Формы в проекте создаются по очереди, если очередность не менять, то по мере добавления к проекту Form1 > Form2 > Form3 etc. В тот момент когда создалась форма 1 (а код у вас был как раз в обработчике ее создания), формы 2 еще не существует, как же можно ее показать? Заметьте, из обработчика создания формы 2 к форме 1 уже можно обращаться. Теперь про OnActivate. После того как все формы создались, происходит активация главной формы проекта, из процедуры Activate уже можно обращаться к другим формам. Но есть один нюанс, событие OnActivate происходит каждый раз когда форма получает фокус. Сверните окно а затем восстановите, или кликните где нибудь на рабочем столе, на другой программе, а затем на вашем окне и произойдет событие OnActivate.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
![]() |
![]() |
![]() |
#7 |
Участник клуба Подтвердите свой е-майл
Регистрация: 26.01.2008
Сообщений: 1,898
|
![]()
<Теперь про OnActivate. После того как все формы создались, происходит активация главной формы проекта, из процедуры Activate уже можно обращаться к другим формам. Но есть один нюанс, событие OnActivate происходит каждый раз когда форма получает фокус. Сверните окно а затем восстановите, или кликните где нибудь на рабочем столе, на другой программе, а затем на вашем окне и произойдет событие OnActivate.>
используя такой код procedure TForm1.FormActivate(Sender: TObject); begin Form2.ShowModal; end; я окно сворачивал, восстанавливал, прошёлся по другим окнам и снова активировал окно своего приложения и Unit2 больше не показывался, только после запуска один раз. |
![]() |
![]() |
![]() |
#8 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
![]()
Прошу прощения, немного перепутал. Это касается дочерних форм.
Проверьте такой код, вызывайте только просто Form2.Show, и поменяйте фокус с одной на другую. Код:
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[Error] Unit1.pas(40): Incompatible types: 'Integer' and 'Extended | BETONOMESHALKA | Общие вопросы Delphi | 9 | 15.03.2014 17:26 |
ошибка - [Error] Unit1.pas(325): Operator not applicable to this operand type | blackstersl | Общие вопросы Delphi | 6 | 27.08.2008 13:17 |
Как правильно удалить Unit2 | Небесный | Общие вопросы Delphi | 3 | 07.06.2008 22:36 |
Ошибка: File not found Unit2.dfm | Иринкаа | Помощь студентам | 5 | 21.11.2007 17:55 |