Опубликован: 25.09.2009 | Уровень: специалист | Доступ: платный
Лекция 13:

Использование ActiveX и OLE в Oracle Forms

< Лекция 12 || Лекция 13: 12 || Лекция 14 >
Аннотация: В этой лекции рассказывается о компонентах ActiveX, о том, как их встраивать в форму и в другие приложения, такие как Windows Media Player, Internet Explorer и др. После этой лекции слушатель также научится импортировать библиотеки для работы с элементами управления ActiveX, в качестве примера будет рассмотрен пример отправки почты.

ActiveX - это технология Microsoft, которая предоставляет программистам наборы стандартных библиотек, облегчающих процесс кодирования. ActiveX - это продвинутая версия OLE, основанная на распределенной компонентной объектной модели DCOM. Библиотеки ActiveX обеспечивают функциональность, достаточную для написания сетевых приложений, а также поддерживают совместимость с любыми компонентами OLE.

Примечание: ActiveX не поддерживается в последних версиях Oracle Forms, и вы не можете использовать его в UNIX (Linux).

Встраивание Windows Media Player

Мы с вами разберем несложный пример - создание WM Player, проигрывающего какой-либо файл.

  1. Находясь в редакторе разметки, найдите на панели инструментов элемент "OCX" и начертите его на канве.
  2. Расположите объект на канве так, чтобы была достаточная область видимости для проигрывания клипа.
  3. Нажмите правую кнопку мыши, находясь в фокусе объекта ActiveX, вызовите всплывающее меню. Выберите пункт "Insert Objects", и на экране у вас появится одноименное окошко (рис. 13.1).
  4. Выберите Windows Media Player из предложенного списка и подтвердите выбор.
    Окно "Вставка объекта"

    Рис. 13.1. Окно "Вставка объекта"
  5. Объект WM Player загружен, и теперь ваш элемент имеет вид черного прямоугольника. Чтобы посмотреть, как он выглядит в режиме выполнения, запустите форму. В запущенной форме вы увидите проигрыватель Media Player, но не сможете выполнить никаких действий над ним. Закройте форму и перейдите обратно в свойства элемента MPlayer.
  6. Найдите свойство "Свойство управление" и нажмите кнопку "Найти…" для запуска окна настроек WM Player (рис. 13.2).
  7. В этом окне вы можете определить настройки и параметры запуска проигрывателя, выбрать компоновку элементов управления, а также указать файл воспроизведения. Укажите в источнике имя проигрываемого файла, им может быть как видео-, так и аудиофайл.
  8. После того как вы выбрали файл проигрывания, запустите форму для просмотра результатов. По умолчанию в проигрывателе имеются все основные элементы управления, такие как звук, прокрутка и кнопки управления проигрыванием файла. В окне настроек проигрывателя вы можете выбрать режим отображения элементов управления:
    • None - при выборе этого режима будет отображаться только окно зрительных образов или окно видео. Такие элементы, как прокрутка, регулятор громкости и кнопки управления проигрыванием, будут невидимы.
    • Mini - в этом режиме помимо окна видео или зрительных образов также будут доступны регуляторы громкости.
    • Full ( default ) - в этом режиме доступен полный набор элементов управления.
      Окно настроек проигрывателя

      Рис. 13.2. Окно настроек проигрывателя
    • Invisible - в этом режиме не видно никаких элементов, даже окна зрительных образов и видео. Этот режим подходит для проигрывания аудиофайлов, появляется ощущение фонового звука, и форма избавлена от отображения дополнительных элементов.

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

Импорт интерфейса библиотеки OLE

Вы можете импортировать библиотеки OLE в свое приложение, используя инструмент "Импорт интерфейса библиотеки OLE ". Пакеты методов OLE позволяют управлять встроенными элементами.

Рассмотрим пример, в котором создадим Oracle Sound Control Object и научимся им управлять с помощью библиотек OLE.

  1. Находясь в редакторе разметки, найдите на панели инструментов элемент " ActiveX " и начертите его на канве. Установите для этого элемента следующие свойства:
    • Ширина: 210;
    • Высота: 100.
  2. Правым щелчком мыши по элементу вызовите всплывающее меню и выберите пункт "Insert Object" для запуска окна объектов ActiveX. Найдите в списке Oracle Sound Control Object и подтвердите свой выбор.
  3. Вызовите всплывающее меню элемента правым щелчком мыши и выберите пункт Oracle Sound Control Object | Свойства для запуска окна свойств проигрывателя (рис. 13.3).
    Окно свойств "Oracle Sound Control"

    Рис. 13.3. Окно свойств "Oracle Sound Control"
  4. В этом окне вы можете управлять настройками проигрывателя, изменять внешний вид, источник звука, а также скрывать регуляторы громкости, таймеры и другие элементы управления проигрыванием, выключая переключатели на вкладке "Общие". Перейдите на вкладку "Импорт/Экспорт" для выбора источника звука. Найдите в вашей файловой системе звуковой файл с расширением *.wav.
  5. Перейдите на вкладку "Device" и выберите радиокнопку "Line-in". Нажмите кнопку "Применить" для подтверждения установленных настроек и запустите форму на выполнение. Убедитесь, что проигрыватель работает и воспроизводит звуковой файл после нажатия кнопки "Воспроизвести".

Элемент создан, и теперь, для того чтобы управлять им программно, нам необходимо импортировать соответствующие методы библиотеки OLE.

  1. Находясь в редакторе разметки, выберите пункт главного меню Программа | Импорт интерфейса библиотеки OLE (рис. 13.4).
    Программа импорта

    Рис. 13.4. Программа импорта
  2. В этом окне содержится перечень доступных классов OLE и соответствующие им методы и события. Найдите класс OracleSoundControl в окне классов OLE. Выделите пакет методов _Dmmsx и нажмите кнопку "ОК". Выбранный вами пакет появится в узле "Программы" навигатора объектов (рис. 13.5).
  3. Создайте три кнопки и разместите их под элементом OSound. Установите для первой кнопки метку "Играть", для второй кнопки - "Стоп" и "Открыть файл" - для третьей.
  4. Создайте триггер WHEN-BUTTON-PRESSED для кнопки "Воспроизвести" и напишите в нем следующий код:
    WHEN_BUTTON_PRESSED OracleSoundControl_DMMSX.Play(:item('Media.OSound').interface);
    Пакет "OracleSoundControl"

    Рис. 13.5. Пакет "OracleSoundControl"
  5. Создайте триггер WHEN-BUTTON-PRESSED для кнопки "Стоп" и напишите в нем следующий код:
    WHEN_BUTTON_PRESSED OracleSoundControl_DMMSX.Stop(:item('Media.OSound').interface);
  6. Создайте триггер WHEN-BUTTON-PRESSED для кнопки "Открыть файл" и напишите в нем следующий код:
    WHEN_BUTTON_PRESSED
    OracleSoundControl_DMMSX.ImportFileAs (:item('Media.OSound'). interface);

Поэкспериментируйте с другими элементами, импортируя методы для управления их функциональностью.

Проигрыватель "Oracle Player"

Рис. 13.6. Проигрыватель "Oracle Player"
< Лекция 12 || Лекция 13: 12 || Лекция 14 >
Константин Лукин
Константин Лукин

ошибка: FRM47337  Tree node label can not be null

при выполнении скрипта

DECLARE
 Itree ITEM;
 top_node Ftree.Node;
 new_node Ftree.Node;
 i_value VARCHAR2(30);
BEGIN
 Itree := Find_Item('tree_block.tree_item ');
 new_node := Ftree.Add_Tree_Node(Itree, Ftree.ROOT_NODE,
   Ftree.PARENT_OFFSET, Ftree.LAST_CHILD,
   Ftree.EXPANDED_NODE, i_value, NULL, i_value);
END;

Юлия Малыгина
Юлия Малыгина
приведена функция скрытия URL отчета и ее применение, но применения так и нет
Андрей Кошелев
Андрей Кошелев
Россия, Москва, Московская Финансово-Юридическая Академия
Артем Чуйко
Артем Чуйко
Россия, Самара