![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Титульный лист в программе [D7, XP]
Миша © (2008-04-15 10:42:00)Подскажите, как лучше сделать титульную форму в программе. Как в MS Word например.
То есть просто должна запуститься форма и через 30 секунд она закрывается и открывается главная форма. Если использовать Таймер на титульной форме, то она все время отрабатывает по разному. То есть иногда через 20 секунд закрывается и открывает главную, иногда вообще через 10 секунд. Подскажите, как поступить.
Миша (2008-04-15 12:21:00) [1]2 {RASkov}
Пасиб. сейчас буду пробовать.
{RASkov} (2008-04-15 12:17:00) [2]Вот можно примерно так - пример показа сплэша пока идет процесс:
program Project1;
uses Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2};
{$R *.res}
begin
Application.Initialize;
SplashFrm:=TForm2.Create(nil);
with SplashFrm do try
InitializeSplash;
Application.CreateForm(TForm1, Form1);
finally
Free;
end;
Application.Run;
end.
//--------------------------------------------------------------
Главная форма:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
const Str: array [0..4] of String = ('Pictures', 'Sounds', 'Cursors', 'Icons', 'Data');
var N: Integer;
begin
for N:=0 to 4 do begin
SplashFrm.UpdateStatus(N*10, Format('Loading: ...%s', [Str[N]]));
Sleep(1000);
end;
end;
end.
//---------------------------------------------------------------------------
Сплэш форма
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, ComCtrls;
type
TForm2 = class(TForm)
ProgressBar1: TProgressBar;
Label1: TLabel;
Image1: TImage;
private
{ Private declarations }
public
procedure InitializeSplash;
procedure UpdateStatus(const Pr: Integer; const Txt: String);
{ Public declarations }
end;
var SplashFrm: TForm2;
implementation
{$R *.dfm}
procedure TForm2.InitializeSplash;
begin
ProgressBar1.Position:=0;
ProgressBar1.Max:=40;
Show;
end;
procedure TForm2.UpdateStatus(const Pr: Integer; const Txt: String);
begin
Label1.Caption:=Txt;
ProgressBar1.Position:=Pr;
Application.ProcessMessages;
end;
end.
По таймеру немного по другому...
{RASkov} (2008-04-15 11:23:00) [3]Сплэш(Splash) окно(форма)...
Можно привязывать к таймеру, а можно к выполняемому коду... т.е. пока идет какой-то процесс сплэшформа видна, затем закрывается...
Игорь Шевченко (2008-04-15 11:13:00) [4]Program Files\Borland\Delphi\Demos\MastApp\*.*