prgchip писал(а):На каком этапе происходит инициализация формы?
Я имею ввиду выполнение операторов после строки.
Вопрос понятен, но Вы в нем два раза ошиблись(ИМХО), а именно:
На каком этапе происходит инициализация формы? – Так как форма это класс, а инициализация экземпляра класса происходит при его создании (инициализации).
Создание класса – это вызов конструктора для переменной этого класса…
Когда вы видите этот код:- Код: Выделить всё
Application.CreateForm(TForm1, Form1);
На самом деле вы делаете вот это (вырезал только нужный кусок):
- Код: Выделить всё
procedure TApplication.CreateForm(InstanceClass: TComponentClass;
out Reference);
var
Instance: TComponent;
ok: boolean;
AForm: TForm;
begin
// Allocate the instance, without calling the constructor
Instance := TComponent(InstanceClass.NewInstance);
// set the Reference before the constructor is called, so that
// events and constructors can refer to it
TComponent(Reference) := Instance;
ok:=false;
try
if (FCreatingForm=nil) and (Instance is TForm) then
FCreatingForm:=TForm(Instance);
Последняя строчка равносильна, вот этому:
- Код: Выделить всё
MyForm:TForm; //У нас есть переменная типа форма
//Нужно создать переменную (инициализировать, разместить в памяти, присвоить полям значения по умолчанию)
MyForm:=TForm.Create;
prgchip писал(а):Я имею ввиду выполнение операторов после строки.
А именно для строки типа:
- Код: Выделить всё
Initialization
Так initialization – это вообще то ни как не связано, с формой или классом – это часть (область)
МОДУЛЯ. И данный код выполняется до передачи управления программе. Финилизирующая часть, выполняется после того как программа отработала, но до ее полного уничтожения.
Выполнение инициализаций модулей происходить по порядку, тому как они записаны, в главном модуле
(program Project1; )И используется в основном, для открытия файлов, соединений с Интернетом и всякого токого… что нужно для работы МОДУЛЯ… и уж потом для классов этого модуля. Но сейчас, без острой необходимости, данного подхода нужно избегать, должно хватать ООП…
Т.е не нужно путать инициализацию (создание экземпляра класса) и инициализацию модуля - это разные вещи. И не нужно пытаться в инициализирующей части модуля, что либо сделать с классами этого модуля, С переменными пожайлуста, но не с описанными классами (ведь это их описание. а не переменные...
прочитайте эту фразу еще раз...)... Надеюсь Вы поняли, про что Я имею ввиду.
Теперь, к тому вопросу, который более реально нужен Вам, и просто более подробно, о том, что Вам ответил
VirtUX:Для, того чтобы понять, что значит перекрыть, Нужно прочитать основы об ООП. Я в соседней
теме давал ссылки на книги, наборы статей (DRKB), которые должны быть под рукой. Советую скачать.
Так же судя по уровню подготовки, я не думаю что вам нужно что либо перекрывать и переопределять класс формы, вам достаточно создать событие OnCreate формы. (смотрим: Инспектор объектов->События)… Если же реально нужна работа на уровне класса, читаем книжку: Раздел Классы, и Раздел Формы. И не забываем что Форма – это тоже класс. Удачи.