|
|
Регистрация | << Правила форума >> | 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, увы, больше не программирую. Рекомендуемая литература по программированию |
#7
|
|||
|
|||
Такой код:
Все-равно аксес виолатион и при этом программа зависает! Код:
With TForm2.Create(Nil) Do Begin Show; Update; // Sleep(5000); Free; end; |
#8
|
|||
|
|||
Кно-нибудь, помогите разобраться!!
и еще вопрос + к предыдущему а я могу из второй формы видеть первую и наоборот? Если да - то как? Последний раз редактировалось lostbananan, 20.02.2013 в 14:08. |
#9
|
||||
|
||||
Всеж написали уже, куда еще-то.
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
Этот пользователь сказал Спасибо Aristarh Dark за это полезное сообщение: | ||
lostbananan (20.02.2013)
|
#10
|
||||
|
||||
Можно сделать и так:
Код:
Form2 := TForm2.Create(Self); кидаем на первую форму баттон и вот это: Код:
... procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure Button1Click(Sender: TObject); procedure fc1; ... var Form1: TForm1; CnClose: boolean; ... uses Unit2; ... procedure TForm1.fc1; begin Form2:= TForm2.Create(Self); Form2.Show; Form1.Visible:= false; end; procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin CanClose:= CnClose; fc1; end; procedure TForm1.Button1Click(Sender: TObject); begin fc1; end; Код:
... procedure Button1Click(Sender: TObject); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure fc2; ... uses Unit1; ... procedure TForm2.Button1Click(Sender: TObject); begin fc2; end; procedure TForm2.fc2; begin CnClose:= true; form1.Close; end; procedure TForm2.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin fc2; end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#11
|
|||
|
|||
Сделал как в коде что в архиве (аорхив я распаковывл ) компилировал - все нормально работает...
Показываю полны код своего проекта: Код:
program Loh1; uses SysUtils, 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 TForm2.Create(nil) do begin Show; Update; Sleep(9000); Free; end; end. Может где еще у меня что-то неправильно? И еще : на какой вкладке палитры компонентов находятся компоненты опендиалог и саведиалог\? Последний раз редактировалось lostbananan, 20.02.2013 в 15:04. |
#12
|
|||
|
|||
Мастера! Помогите!!!
Компоненты диалогов уже нашел, а вот почему открытие второй (дополнительной) формы вызывает аксе виолатион (при этом форма таки появляется)??? Еще: Как указать в саве диалог чтобы имя файла сразу же бало и с расширением? Последний раз редактировалось lostbananan, 20.02.2013 в 16:02. |
#13
|
||||
|
||||
Что у тебя в OnShow и OnCreate у второй формы?
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#14
|
|||
|
|||
Вторая форма - это неглавная?
у нее там ничего, у главной формы - онСоу - ничего, в онКреате - чтение из ини-файла... |
#15
|
||||
|
||||
Какой-то код у меня во второй форме падает, смотри что у тебя там.
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|