Мой DELPHI – Программирование

Всё для программера

Урок 13: OLE

Урок 13: OLE

  1. Обзор
  2. Из статьи Вы узнаете
    основные сведения об OLE, некоторые
    вещи относительно OLE 2 и OLE
    Automation. В статье рассказывается об использовании
    объекта TOLEContainer для построения
    OLE приложения в Delphi.

  3. Основы OLE
  4. Прежде, чем перейти к рассмотрению основ OLE,
    потребуется изучить терминологию.

    Аббревиатура OLE
    обозначает Objects Linked and Embedded (Присоединенные
    И Встроенные Объекты – ПИВО J ).
    Данные, разделяемые между приложениями называются OLE объектом.
    Приложение, которое может содержать OLE
    объекты, называют OLE контейнером
    (OLE Container).
    Приложение, данные из которого можно
    включить в
    OLE контейнер
    в виде OLE объекта, называют OLE
    сервером.
    Прочитать остальную часть записи »

Урок 12: DDE

Урок 12: DDE

  1. Обзор
  2. В данной статье приводятся основные факты о DDEML и показывается,
    как можно использовать DDE в программе. Предмет данной статьи технически сложен, однако библиотека Delphi упрощает наиболее трудные аспекты программирования DDE .

    В статье предполагается, что читатель может знать очень мало о предмете. Цель статьи – научить его использовать концепцию DDE при создании приложений в среде Delphi.

  3. Основы DDE
  4. Аббревиатура DDEML обозначает Dynamic Data Exchange Management
    Library (библиотека управления динамическим обменом данными). DDEML это
    надстройка над сложной системой сообщений, называемой Dynamic Data Exchange
    (DDE). Библиотека, содержащая DDE била разработана для усиления возможностей
    первоначальной системы сообщений Windows.

    DDE дает возможность перейти
    через рамки приложения и взаимодействовать с другими приложениями и системами
    Windows.

    Dynamic Data Exchange получило
    свое имя потому, что позволяет двум приложениям обмениваться данными (текстовыми,
    через глобальную память) динамически во время выполнения. Связь между двумя
    программами можно установить таким образом, что изменения в одном приложении
    будут отражаться во втором. Например, если Вы меняете число в электронной
    таблице, то во втором приложении данные обновятся автоматически и отобразят
    изменения. Кроме того, с помощью DDE можно
    из своего приложения управлять другими приложениями такими, как Word
    for Windows, Report Smith, Excel и др.

    Надеюсь, что данное краткое
    вступление поможет понять что предмет обсуждения представляет интерес.
    Далее рассказывается, как использовать компоненты Delphi для
    построения DDE приложений. Прочитать остальную часть записи »

Урок 11: Средства создания мультимедийных приложений

Урок 11: Средства создания мультимедийных приложений

  1. Обзор
  2. Delphi позволяет легко
    и просто включать в программу такие мультимедийные объекты, как звуки,
    видео и музыку. В данном уроке обсуждается,
    как это сделать, используя встроенный в Delphi компонент
    TMediaPlayer. Подробно рассматриваются
    управление этим компонентом в программе и получение информации о текущем
    состоянии.

  3. Что такое мультимедиа
  4. Точного определения,
    что же это такое, нет. Но в данный момент и в данном месте, наверное, лучше
    дать по-возможности наиболее общее определение и сказать, что “мультимедиа”
    - это термин относящийся к почти всем формам анимации, звукам, видео, которые
    используются на компьютере.

    Давая такое общее определение,
    нужно сказать, что в данном уроке мы имеем дело с подмножеством мультимедиа,
    которое включает:

    1. Показ видео в формате
    Microsoft’s Video for Windows (AVI).

    2. Воспроизведение звуков
    и музыки из MIDI и WAVE файлов.

    Данную задачу можно выполнить
    с помощью динамической библиотеки Microsoft Multimedia Extensions
    для Windows (MMSYSTEM.DLL),
    методы которой инкапсулированы в компоненте TMediaPlay,
    находящийся на странице System Палитры
    Компонент Delphi.

    Для проигрывания файлов мультимедиа
    может потребоваться наличие некоторого оборудования и программного обеспечения.
    Так для воспроизведения звуков нужна звуковая карта. Для воспроизведения
    AVI в Windows 3.1 (или
    WFW) требуется установить ПО Microsoft
    Video. Прочитать остальную часть записи »

Урок 10: События в Delphi

Урок 10: События в Delphi

Содержание урока 10:

Обзор

События в Delphi

Понимание событий

Обработка сообщений Windows в Delphi

  1. Обзор
  2. Одна из ключевых целей среды визуального программирования – скрыть
    от пользователя сложность программирования в Windows. При этом, однако,
    хочется, чтобы такая среда не была упрощена слишком, не до такой степени,
    что программисты потеряют доступ к самой операционной системе.

    Программирование, ориентированное на события – неотъемлемая черта
    Windows. Некоторые программные среды для быстрой разработки приложений
    (RAD) пытаются скрыть от пользователя эту черту совсем, как будто она настолько
    сложна, что большинство не могут ее понять. Истина заключается в том, что
    событийное программирование само по себе не так уж сложно. Однако, есть
    некоторые особенности воплощения данной концепции в Windows, которые в
    некоторых ситуациях могут вызвать затруднения.

    Delphi предоставляет полный доступ к подструктуре событий, предоставляемой
    Windows. С другой стороны, Delphi упрощает программирование обработчиков
    таких событий.

    В данном уроке приводится несколько примеров того, как обрабатывать
    события в Delphi, дается более детальное объяснение работы системы, ориентированной
    на события. Прочитать остальную часть записи »

Урок 9 : Обработка исключительных ситуаций в Delphi

Урок 9 : Обработка исключительных ситуаций в Delphi

  1. Обзор
  2. С целью поддержки структурной
    обработки исключительных ситуаций (exception)
    в Delphi введены новые расширения языка
    Pascal. В данной статье будет дано
    описание того, что из себя представляет такая обработка, почему она полезна,
    будут приведены соответствующий синтаксис Object Pascal и
    примеры использования исключительных ситуаций в Delphi.

  3. Структурная обработка исключительных
    ситуаций
  4. Структурная
    обработка исключительных ситуаций -
    это система, позволяющая программисту при возникновении ошибки (исключительной
    ситуации) связаться с кодом программы, подготовленным для обработки такой
    ошибки
    . Это выполняется
    с помощью языковых конструкций, которые как бы “охраняют”
    фрагмент кода программы и определяют обработчики ошибок, которые будут
    вызываться, если что-то пойдет не так в “охраняемом”
    участке кода. В данном случае понятие исключительной ситуации относится
    к языку и не нужно его путать с системными исключительными ситуациями (hardware
    exceptions), такими как General Protection
    Fault. Эти исключительные ситуации обычно
    используют прерывания и особые состояния “железа”
    для обработки критичной системной ошибки;
    исключительные ситуации в Delphi же
    независимы от “железа”,
    не используют прерываний и используются для обработки ошибочных состояний,
    с которыми подпрограмма не готова иметь дело. Системные исключительные
    ситуации, конечно, могут быть перехвачены и преобразованы в языковые исключительные
    ситуации, но это только одно из применений языковых исключительных ситуаций.

    При традиционной обработке
    ошибок, ошибки, обнаруженные в процедуре обычно передаются наружу (в вызывавшую
    процедуру) в виде возвращаемого значения функции, параметров или глобальных
    переменных (флажков). Каждая вызывающая процедура должна проверять результат
    вызова на наличие ошибки и выполнять соответствующие действия. Часто, это
    просто выход еще выше, в более верхнюю вызывающую процедуру и т.д. :
    функция A вызывает
    B, B вызывает C, C обнаруживает
    ошибку и возвращает код ошибки в B, B проверяет
    возвращаемый код, видит, что возникла ошибка и возвращает код ошибки в
    A, A проверяет возвращаемый код
    и выдает сообщение об ошибке либо решает сделать
    что-нибудь еще, раз первая попытка не удалась.

    Такая “пожарная
    бригада” для обработки ошибок трудоемка,
    требует написания большого количества кода в котором можно легко ошибиться
    и который трудно отлаживать.

    Одна ошибка в коде программы
    или переприсвоение в цепочке возвращаемых значений может привести к тому,
    что нельзя будет связать ошибочное состояние с положением дел во внешнем
    мире. Результатом будет ненормальное поведение программы, потеря данных
    или ресурсов, или крах системы.

    Структурная обработка исключительной
    ситуации замещает ручную обработку ошибок автоматической, сгенерированной
    компилятором системой уведомления. В приведенном выше примере, процедура
    A установила бы “охрану”
    со связанным обработчиком ошибки на фрагмент кода, в котором вызывается
    B. B просто вызывает C.
    Когда C обнаруживает ошибку, то создает
    (raise) исключительную ситуацию.
    Специальный код, сгенерированный компилятором и встроенный в Run-Time
    Library (RTL) начинает поиск обработчика данной
    исключительной ситуации. При поиске
    “защищенного”
    участка кода используется информация, сохраненная в стеке. В процедурах
    C и B нет
    такого участка, а в A – есть. Если
    один из обработчиков ошибок, которые используются в A,
    подходит по типу для возникшей в C исключительной
    ситуации, то программа переходит на его выполнение. При этом, область стека,
    используемая в B и C,
    очищается; выполнение этих процедур
    прекращается.

    Если в A нет
    подходящего обработчика, то поиск продолжается в более верхнем уровне,
    и так может идти, пока поиск не достигнет подходящего обработчика ошибок
    среди используемых по умолчанию обработчиков в RTL.
    Обработчики ошибок из RTL только показывают
    сообщение об ошибке и форсированно прекращают выполнение программы. Любая
    исключительная ситуация, которая осталась необработанной, приведет к прекращению
    выполнения приложения.

    Без проверки возвращаемого
    кода после каждого вызова подпрограммы, код программы должен быть более
    простым, а скомпилированный код – более быстрым. При наличии исключительных
    ситуаций подпрограмма B не должна содержать
    дополнительный код для проверки возвращаемого результата и передачи его
    в A. B ничего не должна делать для
    передачи исключительной ситуации, возникшей в C,
    в процедуру A – встроенная система
    обработки исключительных ситуаций делает всю работу.

    Данная система называется
    структурной, поскольку обработка ошибок определяется областью “защищенного”
    кода; такие области могут быть вложенными.
    Выполнение программы не может перейти на произвольный участок кода;
    выполнение программы может перейти только на обработчик исключительной
    ситуации активной программы. Прочитать остальную часть записи »