Вверх ↑
Ответов: 3889
Рейтинг: 362
#1: 2011-10-03 09:12:55 ЛС | профиль | цитата
login писал(а):
нельзя, в плагин, добавить форму

Да, есть такое ограничение для библиотек, коей и является плагин. Правда, в конструкторе можно зарегистрировать свою форму по шаблону. Так как эти трюки практически не документированы, поделюсь результатами мини-расследования, авось у кого-нибудь получится что-нибудь интересное:

  • посмотрите в главном меню HiAsm Сервис - Медиаплеер, попробуйте вставить в поле путь до wav, mp3 или иного медиа-файла (зависит от установленных в системе кодеков) и нажать Play;
  • потом посмотрите HiAsmIntplugspanex.sha, перейдите в этой схеме в Редактор формы, посмотрите внимательно на комментарии к каждому элементу формы (ПКМ - Комментарий или Правка - Комментарий);
  • зайдите в Сервис - Редактор комманд, убедитесь, что в левой панели есть Медиаплеер и ему назначена команда media (справа-снизу от панели при выборе в списке), а в правой панели этот пункт продублирован в Главном меню программы подпунктом меню Сервис;
  • теперь откройте HiAsmIntplugsstd.sha , в рамочке "Регистрация команд" просмотрите StrList, видите строчку media? Это регистрация команды в среде, после неё станет активным пункт меню "Медиаплеер" и, по нажатию, передаст среде и всем плагинам (с точки hiPlugs.onCommand) команду media;
  • там же: видите звено panex ветки, растущей из hiPlugs.onCommand? Это и есть регистрация панели (диалогового окна) panex.sha, что мы смотрели выше, теперь по команде media появится эта панель;
  • там же: видите ветку onPanelEvent? Это разбор событий зарегистрированной ранее панели и реализация логики работы. События (как минимум для кнопок и полей ввода) приходят в виде строки текста ИмяПанели.КомментарийЭлемента:ДанныеЭлемента, данных может не быть, но двоеточие ":" останется. Как видите, комментарий к элементам в шаблоне формы panex.sha значит очень многое, по нему идентифицируется весь элемент. В папке HiAsmInt u можете найти и исследовать множество шаблонов форм конструктора, почитать комментарии к элементам для общего развития, при желании можно даже их подправить;
  • Предвосхищая Ваш вопрос, пока что не известно, можно ли из hiPlugs штатно (и как) передавать данные обратно в элементы панели, но никто не мешает Вам модифицировать шаблон перед регистрацией заполнив его программно, иили попытаться работать с элементами формы через сообщения, отрисовывать что-то на их контексте, использовать внешнее приложение для интерфейса и т.п. Это, конечно, индусские методы, но документированных методов лучше лично мне пока не известно, возможно, их вообще нет, не зря же hiPlugs остались практически не документированными - разработка могла быть не завершена.
    Элементы ScriptEvents и SDKbtn документированы лучше (документирован используемый ими язык и несколько важных системных объектов), однако они являются интерпретируемой частью конкретной схемы (*.sha). Как вариант, вручную или hiPlugs.doCmdEnabled зарегистрировать команду, вызывать её по сочетанию горячих клавиш, а логику реализовать функцией CmdEvent(Command) скрипта ScriptEvents или модулем ядра системы (hc*), но "индусский рейтинг" такого метода не многим ниже работы с конструктором через буфер обмена из внешней программыплагина.
  • карма: 1

    0