Недавно в Москве появилась новая книга -“Секреты Delphi 2”, написанная американским профессиональным программистом Рэем Лишнером. Издан этот фолиант, состоящий из 799 страниц, издательством “ДиаСофт” (Киев, 1996). Полезным дополнением к нему является диск CD-ROM со всеми исходными текстами авторских примеров, которыми изобилует книга. Каждая мысль автора сопровождается программой-примером, раскрывающим тот или иной “секрет” Delphi.
Откуда же берутся эти секреты? Большею частью они связаны с недокументированными возможностями среды Delphi. Таких секретов, овладеть которыми во многих случаях программисту просто необходимо, набралось немало, причем из других доступных источников получить приведенную Лишнером информацию весьма сложно. Многие рассмотренные дополнительные (недокументированные) возможности Delphi рассчитаны на программистов-профессионалов (в том числе системных) и с успехом могут быть использованы при разработке сложных программ под Windows 3.xx или Windows 95.
Автор начинает свой труд с введения, где дается краткий обзор среды, языка Object Pascal, инструментальных средств, с которыми придется работать программисту.
Почти в каждой главе (а всего их 24) рассматривается множество интересных вопросов, причем автор не упрощает материал, а пытается научить читателя эффективному использованию того или иного метода программирования. В третьей главе подробно освещен объектно-ориентированный подход к вводу-выводу данных на основе управления потоками. Delphi определяет несколько потоковых классов. Однако имеющаяся документация по этому вопросу неполна, существует много не вполне ясных для программиста деталей. Лишнер подробно, с использованием множества примеров, рассматривает потоковые классы, их свойства и методы, так что у читателя создается полное представление о предмете. Изучив третью главу, программист овладевает информацией, достаточной для разработки собственных потоковых классов.
В книге раскрываются и другие “тайны” среды Delphi, например способ считывания и запоминания компонентов и их свойств в файле инструментальной среды формата *.DFM. Много внимания уделяется замечательным классам Tlist и Tstrings, с помощью которых осуществляется работа с массивами переменной длины -списками. При работе со списками наряду с удобствами у программиста зачастую возникают и проблемы. Лишнер показывает, как их обойти.
Ценными, на мой взгляд, являются разделы, в которых рассматриваются недокументированные секреты наиболее сложных элементов Delphi -редакторов свойств и компонентов, а также метакомпонентов, оказывающих непосредственное воздействие на другие компоненты при их изменении, контроле свойств и управлении ими. Владея этой информацией, программист может создавать эффективные компоненты с собственными редакторами свойств. Здесь автор предлагает читателю возможность создания интеллектуального инструментального средства, которое может быть использовано при разработке систем в среде Delphi.
Delphi 2.0 поддерживает скрытый механизм Windows 95 -системный регистр, позволяющий изменять конфигурацию системы. Автор показывает, как использовать преимущества недокументированных классов Delphi, предназначенных для разных операционных сред и описывающих системные регистры, при написании кода, совместимого с Delphi 1.0 и Delphi 2.0.
В отдельной главе достаточно подробно освещены некоторые аспекты интерфейса Delphi-Windows, позволяющие создавать эффективный код для синхронизации потоков, управления графическими объектами, цветами и палитрой. Здесь же читатель получит представление о локальной памяти потока и узнает, как с ее помощью сохранить глобальные переменные потока.
Перевод книги несколько неровный: в первой части, с профессиональной точки зрения, неплохой, понятный; к середине ряд глав (например, глава 15) читается уже с трудом. На некоторых страницах можно найти выражения, больше подходящие для юмористического компьютерного журнала, чем для профессионального руководства. Порой читатель узнает о таких “интеллектуальных” возможностях Delphi, о которых вряд ли подозревал и сам автор. Так, на стр. 419 читаем: “Разная информация RTTI заставляет Delphi думать...”. И тут же: “Строго говоря, Delphi права”. Перед этим (стр. 418), можно узнать, что не только Delphi, но и модуль “думает”. Есть и опечатки, встречаются отклонения как от принятой в программировании терминологии, так и от норм русского языка.
Однако имеющиеся недостатки, связанные в основном с переводом, не снижают общего благоприятного впечатления от книги, а польза от ее изучения, несмотря на все трудности, несомненна.
Телефон издательства “ДиаСофт”: (044) 244-9309.
Александр Чубуков