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

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

Создание глобальной переменной Application


Rem ©   (2004-11-29 17:51:00) 

program Project1;

uses
 Forms,
 Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin
 Application.Initialize;
 Application.CreateForm(TForm1, Form1);
 Application.Run;
end.


Всем знакомый код. А где происходит создание глобального экземпляра класса Application: TApplication?

Конкретно: как инициализировать переменную Application экземпляром своего класса, порожденного от TApplication?

Еще конкретнее: хочу переопределить конструктор TApplication, чтобы при старте выполнялись нужные действия; а также добавить некоторые методы, интерфейсы и пр.


jack128   (2004-11-29 19:10:00) [1]

Rem ©   (29.11.04 18:13) [2]
можно и так. Естественно все настройки приложения сделаные в секции initialization всех юнитов пропадут, ну да и фиг с ними.
Вопрос в другом, ты можешь объяснить зачем тебе это нужно??


Юрий Зотов   (2004-11-29 19:08:00) [2]

> Rem ©   (29.11.04 18:13) [2]

Почему "не есть хорошо"? Нормальное решение.


VMcL   (2004-11-29 19:08:00) [3]

>> Rem ©  (29.11.04 18:13) [2]

> не есть хорошо...

А чего тут нехорошего. Нормальный код. Только я бы написал:
FreeAndNil(Application);
Application := TMyApplication.Create(nil);

Так, на всякий случай. А то случаи, они разные бывают...


Rem   (2004-11-29 19:04:00) [4]

Up


Rem   (2004-11-29 18:13:00) [5]

2 MBo
 Спасибо.

То-есть, насколько я понял, при подсоединении модуля Controls будет автоматически создан Application - экземпляр класса TApplication, ибо это реализовано в секции initialization.

Как же, все же "подсунуть" свой класс?

Ибо писать нечто на подобие:
begin
 Application.Free; // возможно, как-то по-другому...
 Application := TMyApplication.Create(nil);
 Application.Initialize;
 Application.CreateForm(TForm1, Form1);
 Application.Run;
end.

не есть хорошо...


MBo   (2004-11-29 18:01:00) [6]

Controls
InitControls


Наверх

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