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

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

логотип при загрузке программы


quadronik ©   (2005-09-21 21:01:00) 

Вот решил в свою программу добавить такую же фичу как и ворде(при загрузке программы висит логотип ворда). Но ведь, как мне известно, первым грузится именно главная форма, а она у меня уже нагружена большим количеством компонентов.
Вопрос: можно ли сделать так чтобы этот эффект достигался не главной формой, следующей созданной? Как это реализовать?
Спасибо.


kami   (2005-09-22 02:42:00) [1]

в .dpr :

uses
 Forms,
 Unit1 in 'Unit1.pas' {Form1},//здесь основная форма
 Unit2 in 'Unit2.pas' {Form2};//а здесь - заставка

begin
 Application.Initialize;
 Form2:=TForm2.Create(Application);  
 Form2.Show;                          
 Application.CreateForm(TForm1, Form1);
 Application.Run;
end.


в Form1.OnCreate :
begin
 //--------------
 FreeAndNil(Form2);
 //--------------
end;


GuAV   (2005-09-22 01:29:00) [2]

Можно создавать форму в инициализации. Приме:

.pas
unit Unit2;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, AppEvnts;

type
 TWaitForm = class(TForm)
   ApplicationEvents1: TApplicationEvents;
   procedure ApplicationEvents1Idle(Sender: TObject; var Done: Boolean);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 WaitForm: TWaitForm;

implementation

{$R *.dfm}

procedure TWaitForm.ApplicationEvents1Idle(Sender: TObject;
 var Done: Boolean);
begin
 Done := True;
 Release;
end;

var
 InitPrev: procedure;

procedure MyInitProcedure;
begin
 try
   TWaitForm.Create(Application).Show;
 finally
   if Assigned(InitPrev) then
     InitPrev;
 end;
end;

initialization
 InitPrev := InitProc;
 InitProc := @MyInitProcedure;
end.

.dfm
object WaitForm: TWaitForm
 Left = 480
 Top = 459
 Width = 475
 Height = 210
 Caption = 'Splash'
 Color = clBtnFace
 Font.Charset = DEFAULT_CHARSET
 Font.Color = clWindowText
 Font.Height = -11
 Font.Name = 'MS Sans Serif'
 Font.Style = []
 OldCreateOrder = False
 PixelsPerInch = 96
 TextHeight = 13
 object ApplicationEvents1: TApplicationEvents
   OnIdle = ApplicationEvents1Idle
   Left = 200
   Top = 72
 end
end


Кефир87   (2005-09-22 01:25:00) [3]

Ну так и сделать сплеш форму главной. в чем проблема? А после создания всех форм главню (сплэш) спрятать. Вообще можно есть способов...


Кефир87   (2005-09-22 01:25:00) [4]

Ну так и сделать сплеш форму главной. в чем проблема? А после создания всех форм главню (сплэш) спрятать. Вообще можно есть способов...


quadronik   (2005-09-21 21:08:00) [5]

прошу прощения.. за вопрос не в тему конференции... с братом заговорился..


Наверх

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