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

Расскажите про использование dll в программных продуктах

Ответ: Для вызова подпрограммы, расположенной в динамической биб-

лиотеке, следует загрузить необходимую библиотеку с помощью API-

функции LoadLibrary и получить ссылку на подпрограмму с помощью

функции GetProcAddress. Такой подход к получению доступа к биб-

лиотеке называется явным связыванием приложения и подпрограммы

библиотеки.

Неявное связывание подразумевает указание названия динамической биб-

лиотеки при описании метода, в результате чего, вся функциональность,

необходимая для получения адреса метода будет добавлена в программу

автоматически при компиляции. Это не отменяет требования к наличию

динамической библиотеки в области видимости программного продукта,

использующего неявное связывание.

Применение неявного связывания целесообразно в случаях интенсивного

использования динамической библиотеки в течение всего времени рабо-

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

связывания.

Расскажите про многопоточные приложения

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

нения — главный, однако с помощью наследников класса TThread мож-

но создать один или несколько дополнительных потоков для оптимизации

выполнения приложения в целом и более гибкой настройки взаимодействия

фрагментов программы, которые выполняют разные задачи.

Для создания потока следует реализовать класс-наследник TThread, по-

местив последовательность команд потока в метод Execute. Далее, со-

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

новляя его работу, а также завершая его в случае необходимости.

При окончании выполнения метода Execute поток завершается автома-

тически.

.

Расскажите об особенностях модели сом

Ответ: СОМ — Component Object Model — Модель многокомпонентных

объектов является объектно-ориентированной концепцией, описывающей

правила построения классов, называемых СОМ-объектами, с целью обес-

печения взаимодействия между ними вне зависимости от языка, на кото-

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

жения содержащие их.

Механизм работы СОМ построен на использовании объектных интерфей-

сов, и каждый СОМ объект поддерживает как минимум один интерфейс —

lUnknown, задачей которого является контроль количества созданных эк-

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

ванных СОМ-объектом.

СОМ-объекты могут применяться как в составе программного продукта (в

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

шние СОМ-объекты). Связывание методов, которые предоставляет СОМ-

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

ми — через таблицу виртуальных методов на этапе компиляции

программного продукта (раннее связывание) и через вызов метода Invoke

интерфейса IDispatch, если такой интерфейс поддерживается СОМ-

объектом (позднее связывание).

Опишите возможности Delphi в области вывода информации за пределы приложения

Ответ: Delphi поддерживает вывод информации на печать с помощью

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

нию графических данных на его свойстве Canvas. Для вывода информа-

ции используется принтер, установленный в системе по умолчанию, одна-

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

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

рые предназначены для интеграции в среду разработчика Delphi для ис-

пользования их в процессе визуальной разработки.

Приведите основные особенности компонентов, как классов Delphi

Ответ: Компонент имеет точно такую же структуру, как и любой класс в

Delphi, то есть содержит конструктор, деструктор, свойства, методы и

property-свойства. В дополнение к этому, компонент обладает всеми воз-

можностями, реализованными в классе TComponent, так как является его

наследником.

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

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

слова override после описания. Также необходим вызов родительско-

го варианта конструктора, для того, чтобы не нарушить жизненный цикл

компонента.

.

Расскажите про возможности property-свойств

Ответ: Property-свойства являются интерфейсом к внутренним данным

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

нения их значений во время визуальной разработки приложения.

Данные свойства используют сложные описания, основанные на примене-

нии набора следующих модификаторов:

1. Модификаторы Read и Write определяют, соответственно, методы

чтения или сохранения значения при обращении к property-свойству, при-

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

реннего поля, подходящего property-свойству по типу. Если для получе-

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

они должны являться процедурами (для установки значения), принима-

ющими параметр соответствующего типа, или функциями (для получе-

ния значения), возвращающими значение соответствующего типа.

2. Модификатор property-свойства index предназначен для объединения

методов доступа (чтения и установки) к значениям нескольких однотип-

ных property-свойств. После модификатора указывается целочисленное

значение, которое является, фактически номером свойства. Методы

доступа модифицируются добавлением параметра типа integer, в ко-

тором передается номер этого свойства.

3. Модификаторы stored, default и nodefault настраивают среду

разработчика в отношении сохранения property-свойств и указывают,

следует ли сохранять значение property-свойства, и в каких случаях.

4. Модификатор nodefault отменяет действие модификатора default при

переопределении property-свойства.

Для доступа к массивам информации могут использоваться property-свой-

ства, тип данных которых аналогичен массивам. Методы доступа в этом

случае модифицируются дополнительным параметром, определяющим

номер элемента в массиве, к которому производится обращение.