Вы узнаете, как управлять координатными пространствами Windows, как осуществлять взаимодействие нескольких представлений одного документа, как добиваться эффективности и реалистичности изображений OpenGL, как использоватьShell API для управления файловым деревом, как разрабатывать СОМ-серверы и СОМ-контейнеры, как синхронизировать множество элементов управления в рамках диалога, как создавать свои собственные нестандартные окна, как использовать контейнеры и алгоритмы стандартной библиотеки C++ (STL), как строить графики функций в трехмерном пространстве и, наконец, как решать простейшие краевые задачи с демонстрацией результатов в виде аккуратных графиков. Кроме того, в последней главе вы найдете информацию об архитектуре Windows, с точки зрения разработчика программного обеспечения.
При изложении материала я не стараюсь подробно рассматривать все технические детали использования какого-либо класса, функции или типа данных, так как, на мой взгляд, нецелесообразно ставить себе задачу запоминать детали. Во-первых, их очень много даже в рамках одной технологии, во-вторых, MSDN (Microsoft Developer Network) для того и существует, чтобы при необходимости быстро прийти на помощь, в-третьих, я верю в принцип: чем чаще используете, тем вероятней, что запомните. Вместо этого ставится задача показать, какие преимущества вы получаете, используя новую сущность или новый технологический прием, а главное, как их использовать.
Для программистов, использующих язык С, существует множество источников, из которых можно почерпнуть сведения о том, как использовать библиотеку OpenGL, для программистов же, работающих с Delphi, таких источников крайне мало. Данная книга призвана восполнить этот недостаток информации.
В состав стандартной поставки Delphi (начиная с третьей версии) входит заголовочный файл, позволяющий строить приложения с использованием OpenGL, a также справочный файл по командам этой библиотеки. Однако инсталляция Delphi не снабжается ни одним примером по использованию OpenGL, a из файла справок новичку трудно понять, как это сделать. Поэтому основная цель книги - помочь программистам, в том числе и опытным, разобраться в этой теме.
Компоненты Rave Reports и отчеты в приложении Delphi
На первый взгляд кажется, что в сфере создания и печати отчетов в Delphi 7 произошла небольшая революция. Просматривая первый раз Палитру компонентов, вы не найдете в ней хорошо знакомой по прошлым версиям Delphi страницы QReport. Вместо старого генератора отчетов в состав Delphi 7 включен продукт Rave Reports 5.0 от фирмы Nevrona. "Ну и почему же это событие не дотягивает до революции в отчетах?" — спросит читатель. Авторы могут обосновать свою точку зрения.
Во-первых, компоненты QReport по-прежнему доступны разработчику — пакет DCLQRT70.BPL все так же занимает прочное место в папке \Delphi7\Bin и может быть установлен в Палитру компонентов обычным способом. Да и было бы странно ожидать другого от фирмы Borland, которая бдительно следит за обратной совместимостью приложений. Посмотрите к примеру на страницу Win 3.1 Палитры компонентов — новые поколения программистов никогда не видели "прабабушку" Windows XP, и все же исторические компоненты занимают свое исконное место!
Основным назначением любой операционной системы (ОС) является управление ресурсами компьютера. Все процессы в системе: планирование выполнения прикладных программ, запись файлов на диск, пересылка данных по сети и т.д., - должны выполняться как можно более единообразно и бесконфликтно.
Некоторые прикладные системы могут предъявлять повышенные требования к управлению ресурсами и планированию процессов. Например, работа приложений реального времени зависит от того, как операционная система управляет большим количеством событий, возникающих за конечные интервалы времени. Чем больше функций берет на себя ОС, тем более свободно "чувствуют" себя эти приложения при возникновении конфликтных ситуаций.
Для приложений, работающих в режиме реального времени, QNX является идеальной операционной системой. Она удовлетворяет всем основным требованиям, предъявляемым к системам реального времени: в ней реализован многозадачный режим, приоритетно-управляемое планирование и быстрое переключение контекста.
Статьи будут рассматривать отдельную тему с практическими примерами и надеюсь на уровне доступном для начинающих. Не знаю как получится, поскольку опыт писательской работы у меня не большой, зато есть приличный опыт работы в дискуссионных группах. Кроме того вся микропроцессорная техника и ее программирование прошли совместно с моей жизнью, начинал я с 8 разрядных машин, затем вплотную от самых первых персональных компьютеров и по текущие дни. Паскаль же от 4 версии до самой последней, а после уже Дельфи, начиная с первой версии.
Это было интересное время, все начинали с нуля, знаний и опыта у всех было мало, все учились друг у друга, в то же время начал развиваться Интернет, что позволило эффективно обмениваться знаниями. Не было обширного парка компонент, только потом развились файловые архивы уровня и Delphi Super Pages. Все это позволило наработать большой опыт и пришло время отдавать долги, что и делаю в виде серии этих статей для начинающих.
Основы многопоточного и распределенного программирования
Параллельное программирование возникло в 1962 г. с изобретением каналов — независимых аппаратных контроллеров, позволявших центральному процессору выполнять новую прикладную программу одновременно с операциями ввода-вывода других (приостановленных) программ. Параллельное программирование (слово параллельное в данном случае означает "происходящее одновременно"') первоначально было уделом разработчиков операционных систем. В конце 60-х годов были созданы многопроцессорные машины. В результате не только были поставлены новые задачи разработчикам операционных систем, но и появились новые возможности у прикладных программистов.
Первой важной задачей параллельного программирования стало решение проблемы так называемой критической секции. Эта и сопутствующие ей задачи ("обедающих философов", "читателей и писателей" и т.д.) привели к появлению в 60-е годы огромного числа научных работ. Для решения данной проблемы и упрощения работы программиста были разработаны такие элементы синхронизации, как семафоры и мониторы. К середине 70-х годов стало ясно, что для преодоления сложности, присущей параллельным программам, необходимо использовать формальные методы.
Синтаксис и команды JavaScript можно разделить на несколько категорий в зависимости от их назначения и использования. Объекты представляют собой блоки, из которых строится JavaScript. Они применяются для возвращения значений и изменения состояния форм, страниц, броузера и определенных программистом переменных. Объекты можно сопоставить с существительными. Кошка, автомобиль, дом, компьютер, форма - все это существительные, они могут быть представлены как объекты (см. раздел «Объекты»). Мы используем свойства для того, чтобы различать объекты одного класса - например, всех объектов типа кошка. Свойства сравнимы с прилагательными и ссылаются на уникальные для каждого экземпляра объекта особенности.
Популярность Internet растет с каждым днем, однако если раньше клиенты провайдеров в основном хотели получить доступ к системам электронной почты, то в последние два года наметилась тенденция к расширению спектра требуемых услуг. Теперь интересы пользователей не ограничиваются электронным почтовым ящиком и поиском какой-либо информации в WWW, они стремятся создавать собственные Web-страницы или даже Web-узлы. Новички организуют простые HTML-страницы, не обращая особого внимания на стиль и дизайн. Но со временем у них появляется желание сделать нечто эффектное и интересное для определенной части Internet-сообщества. И тогда новоявленному Web-мастеру приходится более полно изучить язык разметки гипертекста (HTML) и языки создания клиентских сценариев (VBScript1 и JavaScript)*.
Впоследствии у него могут появиться и новые запросы, — например пообщаться с посетителями своего узла. И в этом случае его уже не удовлетворит, если в тело страницы просто добавится Webmaster. Так, он решит, что неплохо было бы получить достаточно полную информацию о посетителях узла (имена, e-mail, телефоны, факсы и адреса), подсчитать количество посещений, собрать различные мнения и, наконец, создать базу данных, чтобы пользователям сеансов связи предоставить какие-либо определенные услуги. Но для всего этого знания HTML, VBScript1 и Java Script становится явно недостаточно, так как они описывают только технологию взаимодействия сервера и клиента.
HTML - HyperText Markup Language - язык разметки гипертекста. Документы на языке HTML позволяют пользователю, указав на выделенное слово или фразу, получить доступ к файлу или перейти на другой HTML-документ, который связан с указанным участком текста гиперссылкой. Такие гипертекстовые связи между файлами и документами, расположенными на серверах по всему миру, позволяют системе работать так, как будто она представляет собой огромную паутину информации.
HTML - _не_язык_верстки_! Это средство логической разметки, и не пытайтесь располагать ваши элементы в определенных позициях и определенных местах. У вашего клиента нет размера экрана, нет размера браузера, нет цветов и нет звуковой карты.
Измерительные приборы для домашней лаборатории неизменно привлекают внимание радиолюбителей. Особенно это касается малогабаритных конструкций с цифровой индикацией. Среди них пальма первенства, несомненно, принадлежит мультиметрам — цифровым авометрам с автономным питанием. С применением микросхем большой степени интеграции (БИС) в качестве аналого-цифровых преобразователей размеры мультиметров по сравнению с их собратьями, выполненными на обычных МС, стали значительно меньше. Одновременно повысилась и точность измерений.
Предлагаем читателям описание мультиметра, собранного на основе БИС КР572ПВ2. Результаты измерений отображаются четырехразрядным жидкокристаллическим индикатором (ЖКИ), максимальное высвечиваемое число 1999. Цифровой авометр, по своим параметрам превосходящий широко распространенный стрелочный тестер Ц4317, свободно умещается в кармане.
Особенность данного мультиметра — электронный переключатель пределов измерений и оригинальный узел согласования выходов БИС КР572ПВ2 с жидкокристаллическим индикатором.
Питается прибор от одной батареи «Корунд», энергии которой хватает на 50 часов непрерывной работы. Минимальное напряжение, при котором мультиметр еще работает — 6,5 В. При этой величине «гаснет» ЖКИ, хотя электронная часть авометра исправно функционирует при снижении напряжения питания до 5,6 В.
Методические указания по работе с программами WORD
Типовое окно для Word состоит из заголовка Microsoft Word - Документ.., строки меню (Файл, Правка, Вид,..., Окно,?), стандартной панели инструментов со значками Создать, Открыть, ..., Помошник), панели инструментов Форматирование, центральной части с горизонтальными и вертикальными линейками и полосами прокрутки, и строки состояния внизу экрана.
Книга адресована разработчикам, которые хотят повысить качество своих программ и конкурентоспособность своей организации, а также для менеджеров и руководителей групп, заинтересованных в создании более действенных и эффективных команд разработчиков.
Исходя из технической перспективы, "идеальным читателем" является тот, кто имеет опыт (от одного до трех лет) в применении систем программирования Microsoft Visual C++ и/или Microsoft Visual Basic. Предполагается также, что читатель является членом реальной команды разработчиков, и отправил заказчикам, по крайней мере, один продукт.
Полезным режимом в телефоне является "спикерфон", который позволяет разговаривать с абонентом не снимая трубки.
Однако полностью реализовать его преимущества по типовой схеме невозможно из-за низкой чувствительности микрофона и возникновения самовозбуждения при увеличении чувствительности, например, с помощью дополнительного микрофонного усилителя.
Устранить эти недостатки можно лишь собрав самому или приобретя на радиорынке настроенную плату спикерфона на базе специализированной микросхемы "Motorola" IL34118N (отечественный аналог — КР143ХА2), Эта ИМС предназначена для обработки в полудуплексном режиме сигналов, поступающих с микрофона и телефонной линии. Алгоритм ее работы заключается в усилении сигнала микрофона или линии, имеющего в данный момент большую амплитуду.
Перед вами самоучитель, при помощи которого вы сможете самостоятельно освоить основные возможности приложения Adobe After Effects 6.0, который в дальнейшем будем называть просто — After Effects.
Изложение материала построено по принципу "от простого — к сложному". Главы, каждая из которых нацелена на решение определенной задачи, мы назвали уроками, подчеркивая тем самым, что основное назначение самоучителя — научить работе с After Effects. При этом мы постарались думать о разных пользователях — как начинающих работу с компьютером вообще и пытающихся освоить After Effects "с нуля", так и продвинутых, знакомых с приложениями Adobe Photoshop и Adobe Premiere, а также с предыдущими версиями After Effects.
Хотим сразу оговориться, что мы старались максимально упростить восприятие материала. Для этого мы сделали акцент на частое использование поясняющих рисунков и экранных форм, на которых при помощи расположения указателя мыши подчеркивали смысл рисунка.
Самоучитель, по сути, является одним из двух (равноценных) томов самоучителя, посвященных двум наиболее популярным приложениям для компьютерного видеомонтажа — Adobe After Effects и Adobe Premiere. Обе они, хотя и имеют одинаковый стиль подачи материала, абсолютно независимы (в том смысле, что для чтения одного не требуется знакомство с другим). Тем не менее, по ходу изложения мы часто упоминаем о второй из программ, поскольку, по замыслу разработчиков, они дополняют друг друга, и большая часть пользователей работает с обоими приложениями.
Не забыли мы и о приверженцах компьютеров Apple (правда, помня о вашей немногочисленности, мы вынесли большинство из интересующих вас сведений в сноски и приложения).