Текущий архив: 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.46 MB
Время: 0.038 c