![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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 |
|
#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 |