+ Ответить в теме
Показано с 1 по 13 из 13
  1. #1
    Главный Разработчик Аватар для Devel
    Регистрация
    11.03.2010
    Сообщений
    1,231

    Что такое движок SoulEngine ?

    И так, SoulEngine - это движок, а точнее soulEngine.exe программа, которая исполняет php скрипт с помощью файла php5ts.dll (только 5.2.x версий). Сам soulEngine.exe - это что-то вроде сервера в миниатюре, который добавляет большое количество основополагающих функций для работы с GUI.

    К движку также прилагается фреймворк, в общем-то они друг без друга не работают. Фреймворк эта серия PHP классов-оболочек для работы с GUI, все эти классы используют более низкоуровневые функции импортированные из движка soulEngine.exe, дабы сильно облегчить работу и скрыть всю некрасоту с глаз долой.

    При запуске soulEngine.exe ищется папка engine в корне с самой программой, а также ищется файл php5ts.dll в папке /php/, если их нет, это приводит к неработоспособности движка. Также движок может работать в режиме "все в одном", т.е. все что нужно для его работы находится в самом ехе файле и при загрузке он все выгружает. Этот режим используется для конечных программ в среде, хотя и первый можно использовать, не прикрепляя движок с ехе файлу.

  2. #2
    Есть ли возможность посмотреть на низкоуровневые ф-ии? Есть ли там работа с win32API? Сейчас юзаю winbinder, но при смене версии врядли он проканает.

  3. #3
    Главный Разработчик Аватар для Devel
    Регистрация
    11.03.2010
    Сообщений
    1,231
    Цитата Сообщение от 1105714 Посмотреть сообщение
    Есть ли возможность посмотреть на низкоуровневые ф-ии? Есть ли там работа с win32API? Сейчас юзаю winbinder, но при смене версии врядли он проканает.
    Нет, пока нельзя. Низкоуровневых функций мало.

  4. #4
    Можно ли как-то сделать так, чтобы конечные приложения работали с корректировками, внесенными внутрь папки engine, а не через soulEngine.pak?

    Ну или же, как создать свой собственный файл
    system\blanks\soulEngine.pak
    на основе откорректированных данных внутри папки engine?

    Самый простой пример - engine\main\localization.php. Скажем, мне не нужны, внутри него функции iconv.

  5. #5
    Супер Модератор Аватар для xsnakes
    Регистрация
    14.03.2010
    Адрес
    Пятигорск
    Сообщений
    2,271
    Могу ли я взять soulEngine.exe и создать DevelStudio? Или для этого ещё какие-то библиотеки с soulEngine.exe нужно таскать?
    DevelStudio2010.exe - написано на делфи?

    Я вот хочу также, как дс сделать... Чтобы загружалось всё из файлов, которые можно редактировать, не переделывая проект...
    Знаю можно на дс скомпилировать exe с строчкой include, но я так не хочу ) Хочу soulEngine.exe использовать, как использует его среда...

  6. #6
    Главный Разработчик Аватар для Devel
    Регистрация
    11.03.2010
    Сообщений
    1,231
    Цитата Сообщение от xsnakes Посмотреть сообщение
    Могу ли я взять soulEngine.exe и создать DevelStudio? Или для этого ещё какие-то библиотеки с soulEngine.exe нужно таскать?
    DevelStudio2010.exe - написано на делфи?

    Я вот хочу также, как дс сделать... Чтобы загружалось всё из файлов, которые можно редактировать, не переделывая проект...
    Знаю можно на дс скомпилировать exe с строчкой include, но я так не хочу ) Хочу soulEngine.exe использовать, как использует его среда...
    Да такое можно сделать. Нужен главный файл расширения .pse. Подробности отправил в аську.

  7. #7
    Новичок
    Регистрация
    03.04.2011
    Адрес
    Рефтинский
    Сообщений
    1
    Извините, если пишу не сюда. Я, по сути, новичок в DevelStudio. Пользуюсь ей третью неделю, доволен очень, не скрою. Респект разработчикам! Давно искал нечто подобное. Парочку нужных для себя программ уже сваял, круто, практически ответы на все появляющиеся вопросы нашел здесь, на форуме. А на какие не нашел - нашел ответ - планируется в следующей версии Это, в частности, по управлению размером разных колонок в таблице, мне это очень надо так как в основном практикую с базами DBF и MySQL, (Представьте как выглядят три поля рядом ФИО, ДатаРжд и Пол.). Так как основой является, как я понял, движок SoulEngine, то поэтому пишу сюда замечание и предложение (на форуме не нашел этого).
    Замечание: Если компилировать программу в режиме отладки, и ... не выйдя из нее, попытаться в панели 'Свойства и события' что то изменить, и если отладочная программа в этот момент была чем то занята, DevelStudio очень часто вылетает с циклической ошибкой и отключить ее можно лишь через диспетчер задач системы убив процесс SoulEngine. При этом, если забылся своевременно сохраниться, то все наработки вылетают к черту. А предложение банальное - если этот ицидент исправить нельзя, то желательно добавить в программу систему автосохранения, скажем, через 10 минут и обязательное предварительное автосохранение при запуске компиляции!!!
    P.S. Вынужден был написать об этом, так как уже из-за этого третий раз теряю двух-трех часовую наработку.
    P.S.S. Разработчикам - Модераторам: Это сообщение можно откорректировать удалить вступительную часть и постскрипты оставив суть для обсуждения и ответа.

  8. #8
    Главный Разработчик Аватар для Devel
    Регистрация
    11.03.2010
    Сообщений
    1,231
    Вы имеете ввиду режим отладки - которая запускается через красную кнопку?

  9. #9
    Да такое можно сделать. Нужен главный файл расширения .pse. Подробности отправил в аську.
    Можно мне тоже подробности? Хочу иметь точку входа до загрузки любой формы и по возможности загружать их самостоятельно. Ну и не помешал бы примерчик минимальный, что писать в скрипте стартовом. По сути нужен стартовый код, который выполняется сразу после загрузки engine/engine.php и загружает главную форму. Он при компиляции оказывается в запускном exeшнике как я понимаю. Я вроде как понял как использовать SoulEngine.exe, но этого мало. Хотелось бы иметь запускной exeшник, но чтобы стартовый код был доступен для редактирования. К тому же почему-то при запуске через SoulEngine.exe дальше загрузки формы ничего не работает. Не видит её события. Не помогают ни loadFormEvents, ни даже низкоуровневый set_event, - их вызовы просто словно игнорируются, ни ошибок, ничего не вылазит. Хотя get_event возвращает указанный метод: ev_mainForm:: onShow. Класс ev_mainForm загружен, просто движок не желает обращаться к нему даже. Я в замешательстве.
    UPD:
    Разобрался, почему события для формы не хотели устанавливаться. Почему-то во всех файлах dfm назвния формы было fmEdit. О_о Что за бред? Сами файлы я брал из корня проекта, DV их там создаёт. Стоило поменять имя формы на настоящее, как события заработали.
    Последний раз редактировалось Phantom; 07.09.2011 в 06:52.

  10. #10
    Главный Разработчик Аватар для Devel
    Регистрация
    11.03.2010
    Сообщений
    1,231
    Да это особенности создаваемых в среде форм, лоадер просто меняет названия при их загрузке.

  11. #11
    Так а как можно скомпилировать SoulEngine, чтобы он запускал мой скрипт и у него была своя иконка.

    Как-то так. В чём вообще заключается работа SoulEngine? Ведь все функции для отрисовки форм находятся в php5ts.dll вроде. (upd: насчёт этого ступил, эти функции как раз в нём определяются)
    Последний раз редактировалось Phantom; 07.09.2011 в 15:54.

  12. #12
    Главный Разработчик Аватар для Devel
    Регистрация
    11.03.2010
    Сообщений
    1,231
    Цитата Сообщение от Phantom Посмотреть сообщение
    Так а как можно скомпилировать SoulEngine, чтобы он запускал мой скрипт и у него была своя иконка.

    Как-то так. В чём вообще заключается работа SoulEngine? Ведь все функции для отрисовки форм находятся в php5ts.dll вроде. (upd: насчёт этого ступил, эти функции как раз в нём определяются)
    Я когда-то начинал даже писать расширение gui для пхп. Но потом как-то не сложилось, и решил оставить все как есть. SoulEngine это расширение пхп заключенное в ехе, только оно еще выполняет роль загрузчика движка пхп. Думаю попозже сделаю что-нибудь чтобы его можно было использовать независимо более легче.

    Иконку можно поменять лишь через какую-нибудь программу для редактирования ресурсов.

  13. #13
    Иконку можно поменять лишь через какую-нибудь программу для редактирования ресурсов.
    Ну иконку-то я предположим как-то поменяю. Но при запуске SoulEngine появляется его окно, после чего нужно нажать кнопку RUN, чтобы запустился скрипт code.php. И это работает, но само окно SoulEngine не пропадает при этом, да и вообще неудобно это. DS ведь как-то запускается без окна SoulEngine.

    А ещё, зачем SoulEngine оперирует объектами по их идентификатору (self)? Вообще, слишком уж заумно сделано. У каждого объекта есть несколько различных методов его идентификации: по имени (coolButton), по имени через родителя (Form1->coolButton), по числовому идентификатору, который собственно и используется в SoulEngine, по ссылке на объект в PHP. Почему нельзя избавиться от числовых идентификаторов хотя бы и не оперировать сразу напрямую ссылками на объекты. Или эти идентификаторы по сути и являются ссылками, просто не в формате PHP? Получается каждый объект хранится в памяти в двух представлениях: внутри SoulEngine в одном представлении, к которому можно обращаться при помощи соответствующих функций, передавая числовой идентификатор, и в виде объектов PHP, объявленных в engine.php, так называемых компонентов (TForm и другие). Почему нельзя свести всё к единому типу и тягать туда сюда уже ссылки объектов. Ну или на крайний случай свойство ->self у компонентов сделать приватным и снаружи SoulEngine использовать ссылки на объекты PHP (производные от TForm и других). Зачем конечному разработчику вообще знать о числовых идентификаторах SoulEngine, если уж вы решили сделать ООП обёртку? Как-то тупо передавать в функцию c() числовой идентификатор, чтобы получить реальный объект. Не проще ли везде передавать сразу уже ссылку PHP на этот объект? А то получается, чтобы получить ссылку на PHP объект, нужно сначала передать числовую ссылку-идентификатор в функцию c(). Ну а по именам-то пусть c() возвращает объекты как и сейчас. Я пока не знаю как можно иначе сделать глобальный и просто способ доступа ко всем объектам-компонентам.
    Последний раз редактировалось Phantom; 07.09.2011 в 21:56.

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения