![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Создание глобальной переменной 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