|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Основное окно закрывается, появляется дополнительное
Добрый вечер!
Первое - пршу прощения у модераторов - я позавчера кажется ничего не нарушал - это либо у меня нет плохо фурычил - либо у вас чего-то на серваке... Теперь вопрос: В проекте естьдва окна главное и 2-е. так вот для onClose главного окна написал такой код: Код:
Form2.Show; Что делать? Может не то событие я обрабатываю? Собственно налдо чтобы главное окно (приложение) законрчило свою работу после того как отработает дополнительное окно Неужели никто с такой проблемой не сталкивался?? Последний раз редактировалось M.A.D.M.A.N., 20.02.2013 в 08:37. |
#2
|
|||
|
|||
Сталкивался. Проблема в том, что главное окно и есть основная программа (т.е. главная WndProc), когда оно закрывается, то происходит завершение всей программы. Если тебе надо показать еще одно окно после, фактически, завершения программы, то тебе надо в .dpr файле после вызова Application.Run добавить код показа этого окна:
1. "Выкидываешь" Form2 из списка автосоздаваемых форм. 2. Открываешь файл проекта (Project -> View source) 3. Добавляешь примерно такой код: Код:
begin Application.Initialize; Application.CreateForm(TMainForm, MainForm); Application.Run; // Показываем вторую форму With Form2.Create(Nil) Do Begin Show; Update; Sleep(5000); // Показваем форму в течении 5 сек. Free; End; end. Код выше только для примера, если тебе надо, что бы юзер что-то сделал в этом окне, то надо будет сделать отслеживание этого и закрывать окно по действию пользователя. |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
lostbananan (20.02.2013)
|
#3
|
|||
|
|||
Спасибо! Попробую завтра - сегодня я уже устал...
Уже пробывал - чего-то не получается - на Sleep(5000); ругается неопредделенный идентификатор, когда слип заремарир в ран-тайм режиме выдает система ошибку EAcsessViolation// чтение по адресу 00000.. Чьто не так: вот весь код моего проекта: Код:
program Loh1; uses Forms, main in 'main.pas' {Form1}, Unit2 in 'ini\Головна\1\Unit2.pas' {Form2}; {$R *.res} begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; // Показуємо додаткову форму форму With Form2.Create(Nil) Do Begin Show; Update; // Sleep(5000); Free; End; end. Последний раз редактировалось M.A.D.M.A.N., 20.02.2013 в 09:17. |
#4
|
||||
|
||||
Дак оно не создано, вот и ругается EAccessViolation.
TForm2.Create — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#5
|
|||
|
|||
Моржет я чего-то недопонимаю но по поводу создания окна, вот код:
Код:
With Form2.Create(Nil) Do Begin Show; Update; Код:
Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; // Ïîêàçóºìî äîäàòêîâó ôîðìó ôîðìó TForm2.Create(Nil); With Form2.Create(Nil) Do Begin Show; Update; // Sleep(5000); Free; End; Последний раз редактировалось lostbananan, 20.02.2013 в 10:39. |
#6
|
||||
|
||||
TForm2.Create
я уже писал тебе. Код:
With TForm2.Create(Nil) Do — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |