- •Назовите структурные операторы, применяемые в Object Pascal, и их особенности
- •Использовании подпрограмм в Object Pascal и их разновидности
- •Различных механизмах передачи параметров в под программы Delphi
- •Перечислите области видимости элементов классов, применяемые в Object Pascal
- •Расскажите о правилах описания методов в классах и их особенностях
- •Объясните понятия статических, перегружаемых и абстрактных методов
- •Опишите правила наследования классов.
- •Поясните сущность полиморфизма
- •Расскажите о возможностях определения типа объекта во время выполнения программы и приведение типов объектов
- •Опишите жизненный цикл экземпляра класса, расскажите о конструкторе экземпляров класса
- •Расскажите о деструкторе класса экземпляров класса
- •Деструкторе класса экземпляров класса
- •Описание и использование специальных свойств| объекта property
- •Опишите механизм сообщений в ос Windows
- •Расскажите о методах обработки исключительных ситуаций
- •Расскажите о классах, предназначенных для хранения информации в виде списков
- •Основные свойства и методы классов-списков
- •Опишите возможности и особенности хранения строковых массивов в классах-наследниках tStrings
- •Поясните понятие потока и объясните преимущество использования потоков по отношению к традиционным методам чтения/записи данных
- •Расскажите о строчных потоках, построенных на основе оперативной памяти
- •Поясните понятие графического контекста Windows
- •Форматы графических файлов, поддерживаемых Delphi
- •Расскажите о файлах, соответствующих каждой форме приложения в Delphi
- •Опишите структуру приложения на Delphi, расскажите о видах интерфейса приложения с точки зрения расположения его окон на экране
- •Опишите процесс построения приложения в Delphi
- •Опишите основные инструменты среды разработчика Delphi
- •Опишите жизненный цикл экземпляров классов
- •Расскажите о механизме интерфейсов в Delphi
- •Расскажите об интерфейсах (Interface и (Unknown))
- •Расскажите о правилах именования компонентов и автоматическое именование их Средой разработчика
- •Поясните разницу между свойством принадлежности компонентов и свойством визуальной принадлежности
- •Расскажите о взаимосвязях компонентовчерез механизм уведомлений
- •Расскажите о визуальных компонентах-оболочкахи легковесных компонентах
- •Расскажите об организации структуры элементов управления в окне
- •Расскажите об методах расположения визуальных компонентов на экране и управления их размерами
- •Расскажите о свойствах видимости и доступности визуальных компонентов
- •Расскажите о компонентах, предназначенных для вывода на экран текстовой информации
- •Расскажите о компонентах, предназначенных для ввода текстовой информации
- •При помощи каких компонентов можно обеспечить возможность ввода пользователем числовых значений?
- •При помощи каких компонентов можно вывести на экран какое-либо графическое изображение?
- •Расскажите о возможностях элементов управления — кнопок
- •Приведите правила создания компонентов во время выполнения программы
- •Поясните понятие диалогового компонента
- •Поясните разницу между модальными и немодальными диалогами
- •Поясните понятие формы и основы использования форм в Delphi
- •Опишите жизненный цикл формы
- •Расскажите об основах организации многооконных приложений в Delphi
- •Поясните понятие фрейма
- •Расскажите о депозитарии форм
- •Опишите основные методы, применяемые в Delphi для управления окружением программы
- •Расскажите про использование dll в программных продуктах
- •Расскажите про многопоточные приложения
- •Расскажите об особенностях модели сом
- •Расскажите про модель сообщений компонентов
Расскажите про использование 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-свой-
ства, тип данных которых аналогичен массивам. Методы доступа в этом
случае модифицируются дополнительным параметром, определяющим
номер элемента в массиве, к которому производится обращение.