Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2009, 14:19   #1
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
Сообщение как сделать заставку при закрытии программы(событие TForm1.FormClose)?

Всем доброго дня. Вот это пример заставки при запуске программы
Код:
program Project1;
uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Form2};
{$R *.RES}
begin
  Application.Initialize;
  Form2 := TForm2.Create(Application);
  Form2.Show;
  Form2.Update;
  while Form2.Timer1.Enabled do
    Application.ProcessMessages;
  Application.CreateForm(TForm1, Form1);
  Form2.Hide;
  Form2.Free;
  Application.Run;
end.
А как вызвать ту самую заставку при закрытии программы?
beegl вне форума Ответить с цитированием
Старый 02.04.2009, 14:52   #2
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Почти также
Код:
procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
 Form2:=Form2.Create(self);
 Form2.Timer1.Enabled:=true;
 Form2.Show;
 while Form2.Timer1.Enabled do
 begin
  CanClose:=false;
  Application.ProcessMessages;
 end;
 Form2.Free;
 CanClose:=true;

end;
SERG1980 вне форума Ответить с цитированием
Старый 02.04.2009, 14:57   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну в OnClose показывай форму, а в конце ее удаляй...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.04.2009, 16:20   #4
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
По умолчанию

выводит ошибку
на строку
Код:
Form2:=Form2.Create(self);
Stilet, объесните немножко подробней, если можете из кодом
beegl вне форума Ответить с цитированием
Старый 02.04.2009, 16:21   #5
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

выводит ошибку
на строку
Код:
Form2:=Form2.Create(self);
Пардон попробуй так
Код:
Form2:=TForm2.Create(self);
SERG1980 вне форума Ответить с цитированием
Старый 02.04.2009, 16:53   #6
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
По умолчанию

а что ж в таймере написать, чтоб закрывало полностью программу, после отображения заставки?
А то пробовал написать в таймере и Form1.close; и Application.Terminate;, не закрываеца
beegl вне форума Ответить с цитированием
Старый 02.04.2009, 16:56   #7
maladoy
delphi-ст!
Форумчанин
 
Аватар для maladoy
 
Регистрация: 02.01.2009
Сообщений: 825
По умолчанию

А напиши
Код:
halt;
вступлю в команду разработчиков ПО на Delphi

Последний раз редактировалось maladoy; 02.04.2009 в 17:06.
maladoy вне форума Ответить с цитированием
Старый 02.04.2009, 17:12   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Если не секрет зачем нагскрин в завершении работы?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.04.2009, 17:27   #9
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
По умолчанию

Stilet, не секрет, просто, для красоты, чтоб программа выглядела с изюменкой
SERG1980, maladoy, благодарю за помощь
beegl вне форума Ответить с цитированием
Старый 03.04.2009, 09:00   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
beegl
Появилась свободная минутка, если вопрос еще актуален то вот мое решение:

1. Создаем две формы.
2. На второй форме растягиваем изображение, и ставим ей borderStyle:=bsNone и Position:=DeskTopCenter
3. Изначально вторая форма может быть создана но должна быть невидима
4. Пишем в главной форме такой код:

Код:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
hide;
CanClose:=false;
Timer1.Enabled:=true;
form2.show;  // Это нагскрин
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
form2.Close;
Application.Terminate;
end;
Здесь Таймер на первой форме будет включаться при запросе на закрытие проги, при этом будет появляться нагскрин, который будет по срабатыванию таймера убираться, и программа закроется. Перед таймером для красоты скроем главную форму (в принципе и все остальные формы кроме нага)

Надеюсь отписался яснышко.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как выполнить действие при закрытии Книги? valerij Microsoft Office Excel 9 12.03.2009 15:31
вывод сообщения при закрытии программы tiger Помощь студентам 4 27.08.2008 23:31
Как поставить заставку перед запуском главной формы программы? NiganInterCOM Общие вопросы Delphi 2 22.02.2008 16:11
Как сделат так, что бы при закрытии проекта появлялось сообщение monushka Помощь студентам 7 02.11.2007 08:12
Как сделать что бы при открытии программы база была чистой Moel БД в Delphi 3 08.08.2007 18:19