Создание плагина NPAPI в Delphi и доступ к экспортированным API с использованием JavaScript - PullRequest
2 голосов
/ 14 января 2012

Я нашел полезную библиотеку физики бильярда в Borland delphi для моего хобби-проекта. Код является объектно-ориентированным (в Object pascal). Я хочу визуализировать его, используя webGL (javascript) в браузере Chrome.

Идея в том, что мне нужно сделать один вызов из javascript, который будет обращаться к интерфейсу из delphi lib и давать мне новые значения положения, поворота и масштаба в соответствующем массиве.

Для этого я хочу разработать плагин библиотеки сценариев NPAPI в Delphi (имеется в виду, что только интерфейс API не содержит библиотеку API).

1) Я хочу экспортировать эти необходимые физические API из Delphi через этот плагин NPAPI и получить доступ к ним на моей html-странице с помощью JavaScript. Я нацеливаюсь на хром. 2) Любое простое учебное пособие «hello world» или статья, связанные с этим, будут очень полезны.

3) Любая помощь в использовании Firebreath для достижения этого является наиболее предпочтительной. Как использовать Delphi с Firebreath?

Ответы [ 2 ]

1 голос
/ 14 января 2012
  • используйте хороший редактор HTML / JavaScript (например, IDE NetBeans), создайте базовую страницу HTML, которая содержит «жестко закодированный» JavaScript для отображения начальной сцены и форму HTML для приема ввода пользователя

  • используйте Indy или Synapse для создания HTTP-сервера (в Delphi), который обслуживает эту HTML-страницу, и когда пользователь отправляет ввод формы, анализирует параметры формы и передает их в симуляцию бильярда, которая должна генерировать список графических команд в результате - и преобразовать их в операторы WebGL (это сложная часть)

  • с сервера HTTP отправьте ответ (документ HTML) обратно клиенту со встроенными операторами JavaScript / WebGL, чтобы клиент увидел анимацию и новое состояние игрового поля

  • повтор до конца игры

0 голосов
/ 15 января 2012

Создайте COM DLL и установите ее на компьютере клиента. Затем Javascript может использовать свой класс ActiveXObject для доступа к COM-объекту (или, в IE, вы можете использовать HTML-тег <object>). Убедитесь, что ваш COM-объект реализует интерфейс IDispatch, поскольку Javascript необходимо использовать позднюю привязку, поскольку это интерпретируемая среда, а не компилируемая.

...