Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы и ответы к письм. мод. по Делфи.doc
Скачиваний:
4
Добавлен:
18.07.2019
Размер:
271.36 Кб
Скачать

Опишите основные инструменты среды разработчика Delphi

Ответ: Среда разработчика Delphi реализована по принципу SDI — при-

ложение одного документа — и состоит из набора окон, которые могут быть

расположены в любом месте экрана независимо друг от друга. Можно

указать основные окна, используемые при разработке большинства про-

граммных продуктов:

1. Главное окно с Палитрой компонентов и главным меню.

2. Инспектор объектов, предназначенный для настройки компонентов, рас-

положенных на форме.

3. Менеджер проектов, предназначенный для удобной работы с группами

проектов.

4. Окно исходного текста программы, предназначенное для реализации

логики программы, которая не может быть достигнута путем визуально-

го построения.

5. Окно навигации по коду и окно дерева объектов формы, позволяющие

быстро перемещаться между элементами программы.

Опишите жизненный цикл экземпляров классов

Ответ: Жизненный цикл экземпляра класса начинается с его создания с

помощью вызова конструктора и дополнительных методов, причем эти

методы вызываются автоматически в такой последовательности:

1. Newinstance — выделение памяти, использует InstanceSize для опре-

деления размера памяти.

2. initinstance — очистка выделенной памяти и настройка таблицы вир-

туальных методов.

3. Версия конструктора Create, определенная в классе, из которого он

вызывается.

4. Af terConstruction — только в случае безошибочного выполнения пре-

дыдущих методов.

Далее объект становится полноправной частью программы и может исполь-

зоваться для работы с его свойствами и методами.

Расскажите о механизме интерфейсов в Delphi

Ответ: Интерфейсы в Delphi аналогичны классам, не имеющим свойств, и

все методы которых абстрактны. Для идентификации интерфейса, его опи-

сание может включать в себя указание глобального уникального иденти-

фикатора — GUID. Описание интерфейса выглядит следующим образом:

Туре

<Название интерфейса> = Interface(<Название родительс-

кого интерфейса>);

[Л{хххххххх-хххх-хххх-хххх-хххххххххххх}' ]

Оаголовок метода 1>;

<3аголовок метода N>;

end;

Механизм интерфейсов позволяет частично осуществлять множественное

наследование, то есть создание класса на основе одного родительского

класса и нескольких интерфейс'ов. Для этого стандартное описание клас-

са расширено, и в его заголовке после родительского класса указывается

список реализуемых интерфейсов:

Туре

<Название класса> = class (<Родительский класО,

<Интерфейс 1>, ..., <Интерфейс

<Свойства>

<3аголовки методов, описанные в интерфейсах>

Заголовки собственных методов>

Заголовки переопределенных методов родительского класса>

end;

Если в заголовке класса указаны интерфейсы, которые он реализует, то

все методы этих интерфейсов должны быть либо описаны полностью, либо

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

Расскажите об интерфейсах (Interface и (Unknown))

Ответ: Интерфейсы, так же как и классы, поддерживают наследование, то

есть класс, реализующий некоторый интерфейс, должен описать все ме-

тоды, заявленные и в нем самом, и заявленные в его родительском ин-

терфейсе. Если интерфейс описывается без указания родительского ин-

терфейса, то его родителем считается интерфейс (Interface.)

В данном интерфейсе описаны методы _AddRef и _Release, поддержи-

вающие работу со ссылками на экземпляры классов, реализующих интер-

фейсы, и, фактически, обеспечивающие счетчик использования экземпля-

ров класса. При первом обращении к интерфейсу (создании объекта,

реализующего данный интерфейс) счетчик устанавливается на 1, далее, при

последующих обращениях, увеличивается методом _AddRef, а при разру-

шении уменьшается методом _Release.

Еще одна важная функция базового интерфейса llnterface — определение

информации о других интерфейсах, реализуемых классом.

Для объектов, которые необходимо использовать для реализации в про-

грамме технологии СОМ, используется другой базовый интерфейс, полно-

стью совпадающий с llnterface по методам — lUnknown.

Опишите возможности класса TPersistent

Ответ: Класс TPersistent инкапсулирует методы для поддержки пере-

носимости информации из одного объекта в другой (методы Assign и

AssignTo), а также для сохраняемости значений свойств объектов в фай-

лы форм. Под сохраняемостью свойств экземпляров именно этого класса

понимается возможность сохранения свойств объектов, не заявленных в

секции published, в файлы форм и другие потоки данных. Такая возмож-

ность может потребоваться при создании компонентов, свойства которых

ссылаются на другие компоненты, созданные во время выполнения про-

граммы или ее визуальной разработки.

Поясните понятие компонента в Delphi

Ответ: Компоненты являются наследниками класса TComponent, имею-

щего следующие возможности:

Интеграция с IDE Delphi, то есть возможность находиться в Палитре ком-

понентов IDE и участвовать в процессе визуального проектирования;

«Поддержка свойства принадлежности, то есть управления другими компонентами;

» Поддержка сохраняемости и восстанавливаемости, реализованная в классе TPersistent;

» Поддержка технологии СОМ, то есть возможности экспорта компонентов в компоненты ActiveX или импорта компонентов ActiveX в ком-

поненты Delphi.

Компоненты могут быть визуальными, то есть имеющими представление

на экране во время работы приложения, невизуальными — не имеющими

такого представления, и диалоговыми — не имеющими визуального пред-

ставления, но выводящими отдельные окна для взаимодействия с пользо-

вателем.

Визуальные компоненты являются наследниками класса TControl, неви-

зуальные наследуются напрямую от класса TComponent, а диалоговые ком-

поненты имеют в качестве родительского класса TCommonDialog.