
- •8. Работа с массивами...............................................................................38
- •19. Обработка исключительных ситуаций................................87
- •20. Основные классы и общие свойства компонентов...93
- •28. Динамические библиотеки...........................................................136
- •4. Базовые элементы delphi
- •4.1. Алфавит среды Delphi
- •4.2. Константы
- •4.3. Переменные
- •4.4. Основные типы переменных
- •4.5. Операции над переменными и константами
- •5. Стандартные функции и подпрограммы
- •5.1. Математические функции
- •5.2. Функции преобразования
- •5.3. Дополнительные системные подпрограммы и функции
- •8. Работа с массивами
- •9. Работа со строками
- •9.1. Процедуры работы со строками
- •9.2. Функции работы со строками
- •12. Модуль unit
- •14. Работа с файлами
- •14.1. Текстовые файлы
- •14.2. Типированные файлы
- •14.3. Нетипированные файлы
- •16. Динамические переменные и структуры данных
- •16.1. Динамические переменные
- •16.2. Работа со стеком
- •16.3. Работа со списками или очередями
- •16.4. Работа с деревьями
- •17. Основы объектно–ориентированного программирования
- •17.1. Объекты и классы
- •17.2. Области видимости класса
- •17.3. Свойства (Property) и инкапсуляция
- •17.4. Методы, наследование и полиморфизм
- •17.5. События (Events)
- •18. Выделение памяти под объект и прародитель всех классов – tobject
- •18.1. Выделение памяти под объект
- •18.2. Описание класса tObject
- •18.3. Операторы приведения типов классов
- •19. Обработка исключительных ситуаций
- •19.1. Два вида оператора Try
- •19.2. Программное создание исключительной ситуации
- •19.3. Основные исключительные ситуации
- •20. Основные классы и общие свойства компонентов
- •20.1. Класс tList
- •20.2. Класс tStrings
- •20.3. Общие свойства компонентов
- •22. Визуальные компоненты delphi
- •22.1. Компонент tBitBtn
- •22.2. Компоненты tDrawGrid и tStringGrid
- •22.3. Компонент tPageControl
- •22.4. Компонент tTimer
- •22.5. Компонент tGauge
- •22.6. Компонент tСolorGrid
- •24. Форма, приложение и глобальные объекты
- •24.2. Объект Application
- •24.3. Глобальные объекты
- •Объект ClipBoard
- •Объект Screen
- •Объект Printer
- •28. Динамические библиотеки
- •28.1. Создание dll
- •28.2. Использование dll
- •28.3. Пример написания dll
Объект Screen
Этот объект представляет свойства дисплея. Курсор приложения, общий для всех форм, доступен через свойство:
• Property Cursir:TCursor;
которое уже было описано в 21–м разделе. Например, включить «песочные часы» на время выполнения длительной операции можно следующим образом:
Try
Screen.Cursor:=crHourGlass;
{ выполнение операции }
Finally
ScreenCursor:=crDefault;
End;
Имена всех зарегистрированных в системе шрифтов помещаются в список, определенный в свойстве:
• Property Fonts:TString;
Размеры экрана в пикселях можно получить из свойств:
• Property Height:Integer;
• Property Width:Integer;
Эти свойства довольно часто используются для настройки размеров форм и других компонент на текущее разрешение экрана дисплея.
Следующие два свойства указывают на активную в данный момент форму и ее активный элемент управления:
• Property ActiveForm:TForm;
• Property ActiveControl:TWinControl;
Объект Printer
Этот объект предназначается для печати из приложения. Выбрать текущий принтер и установить необходимые его параметры можно при помощи стандартных диалогов PrintDialog и PrintSetUpDialog, которые были рассмотрены в разделе 23.
Информацию о всех установленных с системе принтерах и текущем принтере можно получить из свойств:
• Property Printers:TStrings;
• Property PrinterIndex:Integer;
Свойство
• Property Fonts:TStrings; – содержит список шрифтов, поддерживаемых текущим принтером.
Расположение листа определяется свойством:
• Property Orientation:TPrinterOrientation; Оно может принимать значения:
– poPortrait – вертикальное расположение страницы,
– poLandscape – горизонтальное расположение страницы.
Высоту и ширину листа бумаги содержат свойства:
• Property PageHeihgt:Integer;
• Property PageWidth:Integer;
Вывод информации на печать, так же как и на дисплей, осуществляется через свойство –
• Property Canvas:TCanvas;
Начало и конец печати листа бумаги осуществляется с помощью методов:
Procedure BeginDoc;
Procedure EndDoc;
Следует заметить, что использование объекта Printer для печати документов достаточно сложно и неоправданно. Многие компоненты имеют свои методы печати, например TcustomForm, TCustomRichEdit, TChart. Для печати же из Delphi документов можно использовать уже готовые заготовки, например COM–сервер приложения Word.Application.
28. Динамические библиотеки
Динамически подключаемые библиотеки (Dynamic Link Library – DLL) играют важную роль в функционировании ОС Windows и прикладных программ.
DLL представляют собой файлы с откомпилированным исполняемым кодом, который используется приложениями и другими DLL. Реализация многих функций ОС вынесена в динамические библиотеки, которые используются по мере необходимости, обеспечивая тем самым экономию адресного пространства. DLL загружается в физическую память один раз, когда к ней обращается какой–либо процесс. Для всех процессов, использующих DLL, в их виртуальной памяти отображаются только образы этих библиотек, при этом для каждого процесса создается впечатление, что DLL загружена именно в его адресное пространство. По существу, динамические библиотеки отличаются от исполняемых файлов только одним, они не могут быть запущены самостоятельно. Следует отметить, что DLL не имеет своего стека и очереди сообщений Windows. При вызове подпрограмм из DLL используется стек вызывающей программы. Для того чтобы динамическая библиотека начала работать, необходимо, чтобы она была вызвана уже запущенной программой или работающей DLL.
Обычно в динамические библиотеки выносятся группы функций, которые применяются для решения сходных задач. Динамическая библиотека может использоваться несколькими приложениями, при этом не обязательно, чтобы все они были созданы при помощи одного языка программирования.
Разновидностью динамических библиотек являются пакеты Delphi, предназначенные для хранения кода компонентов для среды разработки и приложений. Применение динамических библиотек позволяет добиться ряда преимуществ:
• уменьшаются размер исполняемого файла приложения и занимаемые им ресурсы;
• функции DLL могут использовать несколько процессов одновременно;
• управление динамическими библиотеками возлагается на операционную систему;
• внесение изменений в DLL не требует перекомпиляции всего проекта;
• одну DLL могут использовать программы, написанные на разных языках программирования.