Содержание____________________________________________9

4.3.1.2 Распознавание источника события, нажатых кнопок и клавиш,

координат курсора ......................... 256

4.3.2 События клавиатуры. ...................... 259

4.3.2.1 Последовательность событий .................... 259

4.3.2.2 Распознавание нажатых клавиш .................. 261

4.4 Перетаскивание информации об объектах — Drag&Drop • • • • • 263

4.5 Перетаскивание и встраивание объектов —

Drag&Doc. Плавающие окна ••••••••••••••••••• 267

4.6 Перемещение компонентов в окне приложения- ••••••••• 274

4.6.1 Дискретное перемещение. .................... 274

4.6.2 Буксировка компонентов. .................... 275

4.7 Формы ••••••••••••••••••.••••••••••• 277

4.7.1 Основные свойства форм ..................... 278

4.7.2 Управление формами ...................... 281

4.7.3 Модальные формы. ....................... 285

4.7.4 Пример приложения с модальными формами заставки

и запроса пароля ........................ 286

4.7.5 Управление формами в приложениях с интерфейсом

множества документов (приложениях MDI) ............ 289

4.7.6 Пример приложения с интерфейсом множества

документов — простой многооконный редактор .......... 291

4.7.7 Объект Screen и приложения, работающие

с нескольким мониторами .................... 294

4.8 Печать и разработка отчетов ••••••••••••••••••• 297

4.8.1 Печать с помощью различных функций . ............. 297

4.8.1.1 Печать форм методом Print ..................... 297

4.8.1.2 Печать методом Print текстов в обогащенном формате ........ 298

4.8.1.3 Печать файлов средствами стандартных приложений Windows

с помощью функции ShellExecute .................. 298

4.8.2 Печать с помощью объекта Printer ................ 299

4.8.3 Подготовка и печать отчетов с помощью QuickReport —
компоненты QuickRep, QRSubDetail, QRLabel, QRExpr,
QRSysData, QRMemo, QRRichText, QRShape, QRImage ...... 300

4.9 Исключения ••••••••••••••••••••••••••• 309

4.9.1 Исключения и их стандартная обработка ............. 309

4.9.2 Способы работы с исключениями ................. 310

4.9.2.1 Не допускать исключений ..................... 311

4.9.2.2 Защита кода зачистки — блоки try ... _finally ........... 312

4.9.2.3 Защита кода зачистки при завершении приложения —

функции atexit и exit ....................... 313

4.9.3 Обработка исключений в'блоках try ... catch ...........314

4.9.3.1 Синтаксис блоков try ... catch. ................... 314

4.9.3.2 Последовательность обработки исключений, обработка

на уровне приложения ....................... 317

4.9.4 Преднамеренная генерация исключений .............319

4.9.4.1 Оператор throw .......................... 319

4.9.4.2 Исключение EAbort и функция Abort ................ 321

4.9.5 Некоторые итоги ........................ 321

Глава 5. Графика и мультимедиа .. ............ 323

5.1 Построение графических изображений •••••••••••••• 323
5.1.1 Использование готовых графических файлов ........... 323

5.1.1.1.Компонент Image и некоторые его свойства ............. 323