Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.15;
Скачать: CL | DM;

Вниз

Нужна помощь   Найти похожие ветки 

 
dimon1   (2006-09-06 06:19) [0]

Подскажите, как показать изображение до появления главной формы приложение?


 
Elen ©   (2006-09-06 08:04) [1]


> dimon1

Создать вспомогательную форму раньше главной, на которой будет изображение. Показать ее до создания главной формы и удалить после


 
Loginov Dmitry ©   (2006-09-06 08:05) [2]

> Подскажите, как показать изображение до появления главной
> формы приложение?


Покажи его на другой форме, которую открывай до появления главной формы приложения.


 
dimon1   (2006-09-06 08:52) [3]

Пробовал! Но, во первых не получаилось показать дочернюю форму до появления главной, пришлось прятать ее с помощью ShowWindow, а затем снова показывать, а во вторых изображение на форме появляется с небольшой задержкой. Может есть другие варианты?


 
PSPF2003 ©   (2006-09-06 09:12) [4]

Заставка для программы (24.03.00)
Сведения о программе, авторские права и т.д., лучше оформить в виде отдельной формы и показывать ее при запуске программы (как это сделано в Word).
Сделать это не сложно:
1. Создаете форму (например SplashForm).
2. Объявляете ее свободной (availableForms).
3. В Progect Source вставляете следующее (например):
   program Splashin;
   uses
       Forms,
       Main in "MAIN.PAS",
       Splash in "SPLASH.PAS"
   {$R *.RES}
   begin
       try
       SplashForm := TSplashForm.Create(Application);
       SplashForm.Show;
       SplashForm.Update;
       Application.CreateForm(TMainForm, MainForm);
       SplashForm.Hide;
       finally
       SplashForm.Free;
       end;
       Application.Run;
   end.
И форма SplashForm держится на экране пока выполняется Create в главной форме. Но иногда она появляется и пропадает очень быстро, поэтому нужно сделать задержку:
1. Добавляете на форму таймер с событием:
   procedure TSplashForm.Timer1Timer(Sender: TObject);
   begin
     Timer1.Enabled := False;
   end;
2. Событие onCloseQuery для формы:
   procedure TSplashForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
   begin
     CanClose := Not Timer1.Enabled;
   end;
3. И перед SplashForm.Hide; ставите цикл:
   repeat
     Application.ProcessMessages;
   until SplashForm.CloseQuery;
4. Все! Осталось установить на таймере период задержки 3-4 секунды.
5. На последок, у такой формы желательно убрать Caption:
SetWindowLong (Main.Handle,GWL_STYLE, GetWindowLong(Main.Handle, GWL_STYLE) AND NOT WS_CAPTION OR WS_SIZEBOX);


 
PZ   (2006-09-06 09:13) [5]

Сделать главную форму и форму заставки Splash с картинкой на Image.
Вот пример моей программы:

program Dal;

uses
 Forms,
 DalUn in "DalUn.pas" {DalFrm},
 .......
 Splash in "SPLASH.PAS" {SplashForm};

{$R *.RES}

begin
 SplashForm := TSplashForm.Create(Application);
 SplashForm.Show;       // Показываем заставку
 SplashForm.Update;
 Application.CreateForm(TDalFrm, DalFrm);  // Загрузка главной формы
 SplashForm.Close;      // После загрузки гл. формы заставку закрываем
 Application.ShowHint := True;
 Application.Run;
end.


 
dimon1   (2006-09-06 09:19) [6]

Спосибо за помощ!


 
PSPF2003 ©   (2006-09-06 09:29) [7]

Помощь с мягким знаком пишется…



Страницы: 1 вся ветка

Текущий архив: 2006.10.15;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.054 c
2-1159611798
Piter
2006-09-30 14:23
2006.10.15
Delphi IO работает только с файлами до 2 Гб?


15-1159198548
AntiUser
2006-09-25 19:35
2006.10.15
Ну помогите мне пожалуйста книжкой и советом


2-1159348029
Yaral
2006-09-27 13:07
2006.10.15
Получить значение из реестра


15-1158749498
user666
2006-09-20 14:51
2006.10.15
Отладчик Delphi 8


1-1157712245
TakTak
2006-09-08 14:44
2006.10.15
поместить в автозагрузку программу.