Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Титульный лист в программе [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\*.*


Наверх

Титульная страница Поиск, карта сайта Написать письмо