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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.06.2012, 10:23   #1
ins813
Форумчанин
 
Регистрация: 18.05.2012
Сообщений: 111
По умолчанию Создание формы приветствия

Здравствуйте, такой вопрос, как сделать форму приветствия, т.е. есть форма1(главная) и форма2 (приветствия)-кот должна появится в начале загрузки проги и исчезнуть после неё ?
ins813 вне форума Ответить с цитированием
Старый 28.06.2012, 10:29   #2
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

Делай ShowModal для формы приветствия и по таймеру закрывай.
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 28.06.2012, 10:42   #3
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Код:
procedure TForm1.FormCreate(Sender: TObject);
var
  frm: tform;
...
frm := TForm.Create(nil);
  frm.Position := poDesktopCenter;
  frm.BorderStyle := bsNone;
  frm.height := 50;
  frm.width := 130;
  frm.Show;
  frm.Canvas.Font.Size := 20;
  frm.Canvas.TextOut(10, 10, 'loading...');
//... всё что надо
  frm.free;
пример для неактивной формы, на которой будет написано "лоадинг"
такая форма даже не перерисовывается, это можно поправить, добавив на такую форму какой-нибудь компонент динамически.

Альтернативный вариант сделать по таймеру (неважно на какой форме) - много раз было на форуме, ищите,
форма закроется, как сработает таймер или можно вручную вызвать событие таймера до завершения времени (коли загрузка уже закончилась). В самом событии таймера естественно закрывать(и удалять если динамически создавали) ненужную форму.
phomm вне форума Ответить с цитированием
Старый 28.06.2012, 10:49   #4
ins813
Форумчанин
 
Регистрация: 18.05.2012
Сообщений: 111
По умолчанию

почему -то не получается код от Phomm'a и через showmodal не работал и на форуме читал http://www.programmersforum.ru/showt...=168524&page=2, что-то не работает у меня (:
ins813 вне форума Ответить с цитированием
Старый 28.06.2012, 10:53   #5
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Набери просто в гугле Splash в Delphi и будет куча примеров.
FaTaL вне форума Ответить с цитированием
Старый 28.06.2012, 11:07   #6
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

Цитата:
почему -то не получается код от Phomm'a и через showmodal не работал и на форуме читал
Иногда хочется сесть рядом и посмотреть...

Оно ни может не работать. Оно либо должно выдать ошибку, либо работает, но не так как нужно.
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 28.06.2012, 11:18   #7
ins813
Форумчанин
 
Регистрация: 18.05.2012
Сообщений: 111
По умолчанию

Valio я тебя понял , работает не так как нужно, не много переформулирую: нужен код: Форма2 открывается, пока загружается форма1, потом, соответственно закрывается и открывается Форма1

можно как-то отредактировать чтобы просто вылазила форма2 ?
Код:
procedure TForm2.FormCreate(Sender: TObject);
var
  frm: tform;
begin
frm := TForm.Create(nil);
  frm.Position := poDesktopCenter;
  frm.BorderStyle := bsNone;
  frm.height := 200;
  frm.width := 130;
  frm.Show;
  frm.Canvas.Font.Size := 50;                
  frm.Canvas.TextOut(10, 10, 'loading...'); 
  Sleep(5000);
  frm.free;
end;

Последний раз редактировалось Stilet; 28.06.2012 в 12:51.
ins813 вне форума Ответить с цитированием
Старый 28.06.2012, 11:46   #8
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Тогда вот один из самых оптимальных вариантов, в DPR файле пишешь:
Код:
  SplashForm := TSplashForm.Create(Application);
  SplashForm.Show;
  SplashForm.Update;
  Application.CreateForm(TMainForm, MainForm);
  SplashForm.Close;
  Application.Run;
где SplashForm это форма, которая должна отображаться, пока происходит событие MainForm.OnCreate. Как только оно пройдёт, то Splash форма закроется и откроется основное окно программы MainForm.

Если непонятно, то могу написать пример.

Вот пока успел до обеда, набросал Splash Demo

Последний раз редактировалось FaTaL; 28.06.2012 в 11:57.
FaTaL вне форума Ответить с цитированием
Старый 28.06.2012, 11:57   #9
ins813
Форумчанин
 
Регистрация: 18.05.2012
Сообщений: 111
По умолчанию

FaTaL лучше пример

FaTaL спасибо большое оч помог !

Последний раз редактировалось Stilet; 28.06.2012 в 12:52.
ins813 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа приветствия Draiv93 Microsoft Office Access 1 10.05.2011 08:06
Запуск программы , перед экраном приветствия или раньше ? gefest58 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 06.02.2011 10:59
Создание формы в C# Vedmac1662 Помощь студентам 0 15.12.2009 17:41
Создание формы Mylene79 Microsoft Office Excel 7 25.02.2009 13:29
Слетел экран приветствия из-за Vista Icons Pack. Naruto Shippuuden Операционные системы общие вопросы 2 15.05.2008 09:46