![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как изобразить картинку перед запуском программы? [D6, WinME]
Helg © (2002-05-31 17:26:00)Как перед запуском программы изобразить картинку, пока инициализируются переменные? Я пробовал по всякому - не получается. Только после запуска основной формы. А как это сделать перед запуском основной формы? Посоветуйте, добрые люди...
Helg (2002-06-01 20:07:00) [1]Спасибо всем за полезные советы. Очень много почерпнул полезного.
Я сделал по совету Hogo. Ура, сработало! Еще раз всем спасибо.
vfv (2002-06-01 12:25:00) [2]Маленький пример заставки с проверкой корректности завершения приложения и проверки и индексации БД PARADOX
var FIniFile: TRegistryIniFile;
begin
Application.Initialize;
FIniFile := TRegistryIniFile.Create("PMK Registry");//Инициализация переменной реестра куда записывается результат завершения приложения
Zastavka := TZastavka.Create(Application);
Zastavka.SHOW;
Zastavka.Update;
//Проверяю установку программы на проверку БД при загрузке
//и на нормальность завершения программы
//при True Выполняю процедуру ShowLab с выводом результатов
//определенных действий через ТLabel Заставки
if FIniFile.ReadBool(SECTION, "CheckDB",True)or not FIniFile.ReadBool(SECTION, "NormalSD",True) Then
Zastavka.ShowLab;
FIniFile.WriteBool(SECTION, "NormalSD",False);
FIniFile.Free;
Application.CreateForm(TMainForm, MainForm);
Application.CreateForm(TDelDlg, DelDlg);
Application.CreateForm(TSprTaraForm, SprTaraForm);
Application.CreateForm(TSprClientsForm, SprClientsForm);
Application.CreateForm(TINZForm, INZForm);
Application.CreateForm(TOUTZForm, OUTZForm);
Application.CreateForm(TIMPForm, IMPForm);
Application.CreateForm(TPrefForm, PrefForm);
Zastavka.Hide;
Zastavka.Release;
Zastavka:=nil;
Application.Run;
end.
alexadvanser (2002-06-01 12:02:00) [3]Обработчик ON Create естевственно для основной формы fmMain...
alexadvanser (2002-06-01 11:58:00) [4]Ребята, вы что, с ума сошли???
В проекте создаешь 2 форма, одна, как обычно, допустим fmMain, основная, а другая, допустим fmSplash- на которую наклеивается картинка.
Затем в меню PROJECT->OPTIONво вкладке FORMSперекидываем fmSplashиз группы Auto-create formsв группу Available forms, затем OK.
После этого в обработчик события ON CREATE ставите:
fmSplash := TfmSplash.Create(Application);
после чего fmSplash.Show;(для фоновой выдачи картинки)
или fmSplash.ShowModal;(для передачи управления форме с картинкой)
Ну а потом или по таймеру, или по завершении действия ставишь fmSplash.close;и форма закроется.
Удачи!
Кстати, если нужно, чтобы показывалась только картинка, без кнопок формы, нужно свойство формы fmSplash BorderStyleизменить на bsNone.
Cobalt (2002-06-01 11:44:00) [5]http://delphi.mastak.ru/cgi-bin/download.pl?get=993058245&n=2
Helg (2002-06-01 08:58:00) [6]>HOGO
Спасибо. Здорово, я попробую
>КаРаТ
А можно насчет статейки по-конкретней, где ее найти?
KaPaT (2002-05-31 22:39:00) [7]Здесь статейка на эту тему хорошая есть
Hogo (2002-05-31 21:38:00) [8]Пример из Свана
program Splashin;
uses
Forms,
Main in "MAIN.PAS" {MainForm},
Splash in "SPLASH.PAS" {SplashForm};
{$R *.RES}
begin
SplashForm := TSplashForm.Create(Application);
SplashForm.Show;
SplashForm.Update;
Application.CreateForm(TMainForm, MainForm);
SplashForm.Hide;
SplashForm.Free;
Application.Run;
end.
unit Main;
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls;
type
TMainForm = class(TForm)
ExitButton: TButton;
procedure ExitButtonClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
MainForm: TMainForm;
implementation
{$R *.DFM}
procedure TMainForm.ExitButtonClick(Sender: TObject);
begin
Close;
end;
{ The following procedure pauses for a few seconds so
the Splash dialog remains visible for a predetermined
length of time. }
procedure TMainForm.FormCreate(Sender: TObject);
var
CurrentTime: LongInt;
begin
CurrentTime := GetTickCount div 1000;
while ( (GetTickCount div 1000) < (CurrentTime + 4) ) do
{ nothing };
end;
end.
Song (2002-05-31 17:27:00) [9]В dpr файл вставить.