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

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

Урок 14: Использование DLL в Delphi

Урок 14: Использование DLL в Delphi

  1. Понятие DLL
  2. Вспомним процесс программирования в DOS. Преобразование исходного
    текста программы в машинный код включал в себя два процесса – компиляцию
    и линковку. В процессе линковки, редактор связей, компоновавший отдельные
    модули программы, помещал в код программы не только объявления функций
    и процедур, но и их полный код. Вы готовили таким образом одну программу,
    другую, третью … И везде код одних и тех же функций помещался в программу
    полностью.

    В многозадачной среде такой
    подход был бы по меньшей мере безрассудным, так как очевидно, что огромное
    количество одних и тех же функций, отвечающих за прорисовку элементов пользовательского
    интерфейса, за доступ к системным ресурсам и т.п. дублировались бы полностью
    во всех приложениях, что привело бы к быстрому истощению самого дорогого
    ресурса – оперативной памяти. В качестве решения возникшей проблемы, еще
    на UNIX-подобных платформах была предложена концепция динамической компоновки.

    Но, чем же отличаются Dynamic
    Link Library (DLL) от обычных приложений? Для понимания этого требуется
    уточнить понятия задачи (task), экземпляра (копии) приложения (instance)
    и модуля (module).

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

    DLL – библиотека, в отличие
    от приложения не имеет ни стека, ни очереди сообщений. Функции, помещенные
    в DLL, выполняются в контексте вызвавшего приложения, пользуясь его стеком.
    Но эти же функции используют сегмент данных, принадлежащий библиотеке,
    а не копии приложения.

    В силу такой организации
    DLL, экономия памяти достигается за счет того, что все запущенные приложения
    используют один модуль DLL, не включая те или иные стандартные функции
    в состав своих модулей.

    Часто, в виде DLL создаются
    отдельные наборы функций, объединенные по тем или иным логическим признакам,
    аналогично тому, как концептуально происходит планирование модулей ( в
    смысле unit ) в Pascal. Отличие заключается в том, что функции из модулей
    Pascal компонуются статически – на этапе линковки, а функции из DLL компонуются
    динамически, то есть в run-time. Прочитать остальную часть записи »

Урок 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, дается более детальное объяснение работы системы, ориентированной
    на события. Прочитать остальную часть записи »