Как сделать свой браузер в devel next
Группа ВКонтакте: midnight_yt Создаем свой браузер на основе Chromium в программе PHP DevelStudio 3.0 .
Добавляем ссылку с любого WEB - сайта в свою программу. Просто, быстро, понятно! Больше уроков у меня на канале, .
Ссылка на скачивание исходника - yadi.sk/d/JDgC1lwSqbc3E ▻ Подписаться на Канал - bit.ly/JoinTROFIM ▻ Я в .
Как сделать цифровые часы в программе DevelNext. Весьма полезная штука и неплохой опыт для новичков, советую .
мне 14 лет снимаю через➡ Du Recorder, Bandicam монтирую через➡ Sony Vegas Pro 13 телефон➡ Moto X Force .
Как сделать кликер в программе DevelNext. Не мог найти не одного подобного видео, по этому скачал проект Фантика, .
В этом видосе мы будем запускать программы или игры с вашего компьютера. Это делается через простой скрипт .
И всем привет ребят, с вами Varinosik! И сегодня я вам покажу свой Анти-Вирус. Удачного просмотра! (Если ещё не .
Как сделать программу с убегающей от курсора кнопкой? Всё просто! В этом видео вы узнаете всё, чего вас так волнует.
Ссылка на скачивание исходника - yadi.sk/d/j_yS-K0XqPq55 ▻ Подписаться на Канал - bit.ly/JoinTROFIM ▻ Я в .
Ловите =) Кстати спасибо тому кто накрутил мне подписчиков ^_^ Скрипты тут: yadi.sk/d/ECmaj4F6Eaq2R =)
Как открыть изображение через URL, в программе DevelNext. Копируем URL в поле для ввода, нажимаем на кнопку и .
При нажатии на кнопку выхода из программы, программа закроется. Такая кнопка пригодится в проектах без рамки или .
В этом видосе ты узнаешь как сделать круглую программу или любой другой формы. Для этого тебе всего понадобится .
В это видео мы разберёмся как работает brouse('как с ним работать?'); и зачем он нужен? Так же как можно открыть .
В этом видео ты узнаешь как установить движок для создания игр на подобии Quake 2-3, Half-Life, GTA 3, The Elder Scrolls.
Исходник??Наберём 5 лайков и выпущу видео как сделать фейк чит на DevelStudio and DevelNext! Файл удалён! DevelNext .
В этом видео вы узнаете как сделать курсор в программе DevelNext без программирования. Урок рассчитан только на .
Начиная работу со студией DevelNext, могут возникнуть трудности, с чего начать, чтоб реализовать хотя бы простейший функционал. Я не буду касаться основ PHP, у пользователя должны быть хотя бы базовые знания ООП, т.к. программирование в DN полностью основано на объектах .
К сожалению, с документацией всё очень печально, она разбросана на нескольких ресурсах, и многие аспекты не описаны. Собрал нужные ссылки:
-
– Официальная документация DevelNext – Описание функций JPHP – Здесь есть примеры использования и описаны аналоги PHP функций – CSS стили для JavaFX – Исходники DevelNext – Исходники JPHP
В DN поддерживается синтаксис PHP 5.6, плюс некоторые фичи из PHP 7 (ожидается полная поддержка PHP 7). Интерпретатор JPHP написан на языке Java, есть возможность скомпилировать исходники в байт код Java Virtual Machine (защита от декомпиляции). Графическая платформа – JavaFX.
Компиляция в байт-код
С одной стороны, Java позволит писать кроссплатформенные, высокопроизводительные приложения, плюс есть возможность подключить готовые пакеты Java с богатой функциональностью (нужно собрать их в пакет расширений), но с другой – зависимость от Java (если не установлена JVM на ПК клиента, необходимо тащить её с собой, а это более 100 мб), “прожорливость” готовых программ (простейшее hello world может потребовать десятки-сотни мб ОЗУ), относительно длительный запуск программы (нужно время для старта JVM).
Особенности JPHP
К сожалению, интерпретатор не лишён багов и не редко возникает ошибка JVM – NullPointerException, что может быть из-за ошибки как в JPHP, так и в исходном коде PHP.
Синтаксические особенности. В отличии от оригинального php, такой синтаксис является валидным:
Описание событий в комментариях. На мой взгляд, довольно красивое решение. События объектов привязываются к функциям комментарием @event.
Событие действие (action) для кнопки с id button будет выглядеть таким образом:
События можно комбинировать, правда парсер не сработает и не отобразит события в левой колонке, вот например события действие + клик левой кнопкой мыши:
Несмотря на то, что в левом столбце отображается одно событие, сработают оба, т.к. прописаны необходимые комментарии
Событие действие включает в себя нажатие мышью, а при фокусе на кнопке –
нажатие пробела.
Пространства имён. Про пространства имён я писал ранее, всё как в оригинальном php, особенность лишь в операторе use. Есть разные режимы его работы:
Выбор режима use
В первом случае use работает как в оригинальном php – импортирует имя класса:
Во втором же, для экономии кода можно импортировать целый пакет, без описания каждого класса по отдельности:
Редактор в DN автоматически подставляет необходимые use, что довольно удобно. При копировании-вставке кода редактор предложит прописать нужные use:
Функции. JPHP поддерживает большое количество стандартных PHP функций таких как file_get_contents, strlen, array_merge и т.д. Проверить, поддерживается ли функция, можно с помощью function_exists:
Для поддержки curl_* функций есть пакет jURL, для preg_ – Preg. Если в подсказках появляется имя необходимой функции, то она точно поддерживается средой.
Если же нужной функции нет, есть аналоги практически всех родных PHP функций, их можно найти в документации (ссылки в начале поста).
Отладка кода. Каких-либо специальных функций для отладки нет, только класс Logger. Весь stdout поток отображается в консоли. Есть функции pre, alert, которые отображают информацию в всплывающем окне, но это не так практично, как var_dump, т.к. если объем информации большой, он обрежется под размеры окна.
Редактор
Редактор с каждой версией среды всё лучше и лучше, но всё равно с багами… Если проект большой, готовьтесь к тормозам. Но тем не менее, редактор с системой подсказок и автодополнением значительно помогает при написании кода. Если код содержит комментарии формата phpdoc, редактор распарсит их и будет отображать соответствующие подсказки.
Допустим, что в списке listView содержатся текстовые объекты UXLabel, и чтоб редактор отображал корректные подсказки, добавим соответствующий комментарий.
Итак, с чего начать
Создав новый проект. перед нами предстаёт пустая форма MainForm и пара пустых модулей – MainModule, AppModule.
Формы и графические объекты
Каждой статически созданной форме в DevelNext соответствует отдельный класс. Новый проект содержит пустую форму и соответствующий ей одноименный класс – MainForm.
Здесь, как и в классическом php, есть поддержка “магических” методов. Метод __construct будет вызван при старте приложения, но в данный момент форма ещё не существует и обращение к графическим элементам невозможно, для этого лучше использовать событие Появление (show). Последовательность, в которой вызываются события: __construct -> создание формы -> Перед появлением (showing) -> появление формы, отрисовка графики -> Появление (show)
Все графические объекты изначально обладают стандартным набором свойств и методов. Свойства самой формы можно просмотреть введя в редакторе $this->
В подсказках – все свойства и методы текущей формы
Кнопки, формы и прочие графические объекты являются свойствами текущего класса, обратиться к этим объектам и их свойствам можно так: $this->id_объекта->свойство
Чтоб просмотреть, как именуется то или иное свойство, можно выделить объект и навести мышь на нужное поле или ввести в редакторе $this->id_объекта-> для отображения подсказок.
Свойство текст именуется как ->text
Подсказки для объекта edit
Обращение к графическои объектам возможно только из главного (графического) потока.
Если вы используете функции для работы с потоками (Thread), чтоб вернуться к графическому потоку, есть функции uiLater и uiLaterAndWait
Есть небольшой баг с размерами формы, если форма открывается и закрывается несколько раз,
её размеры почему-то меняются, чтоб вернуть исходные размеры, создайте событие “закрытие формы” и поместите туда код $this->free();
Выбрать главную форму можно в настройках проекта. Если главной формы нет, будет выполнен только тот код, который расположен в модуле “Загрузчик” (об этом ниже).
Выбор главной формы – она будет отображена при запуске проекта
Система модулей
В каждом проекте по умолчанию присутствует модуль Загрузчик (AppModule), даже если его удалить, он будет заново создан при открытии проекта . Судя по названию, этот модуль запускается сразу после старта проекта. Если в настройках не выбрана главная форма, будет выполнен только код из загрузчика. У модуля Загрузчик есть два события – Подключение и Загрузка модуля, практической разницы между этими событиями я не заметил. Если нужно создать приложение без графики (как например это), код необходимо поместить в одно из этих событий.
Другие же модули могут быть созданы самим пользователем. Модули удобны тем, что в них можно вынести отдельную функциональность, например, модуль для базы данных, модуль с выбором папок/файлов и т.д. Получится, что в классе формы будет расположен код, отвечающий за графику этой формы, а каждая функциональность в своём модуле, т.е. не будет мешанины, всё станет на свои полки.
На модулях можно располагать элементы (таймер, база данных и пр.) как графические элементы на форме.
Обратиться к объектам модуля можно так же через $this->…
Обращение к объектам модуля
Любой модуль (кроме загрузчика) можно подключить к любой форме
Подключение модуля к форме
После подключения объекты модуля (таймер, база данных, …) станут доступны для вызова из формы, а в модуле можно будет обратиться к элементам формы (текстовое поле, кнопка, …). Т.е. из формы можно будет управлять таймером через $this->timer->…, а выбранный путь к папке в модуле можно будет вывести в поле формы:
1. Создаём форму, на неё помещаем поле для ввода и кнопку. Подключаем модуль к форме.
2. На модуль помещаем диалог для файлов. В настройках диалога выбираем объекты формы – кнопку и поле для ввода.
3. Получается, что мы связали диалог выбора и графические объекты, не написав при этом ни строки кода
При подключении модуля, форме становятся доступны методы модуля. Если поместить в модуль такой код:
Как открыть сайт или ссылку в браузере операционной системы?
Простой метод открытия любой ссылки в браузере по-умолчанию, браузер который является основным в системе пользователя.
Для этого используйте функцию browse() :
Например, если у вас основной браузер в системе это FireFox , то ссылка будет открыта именно в этом браузере в новой вкладке.
Как запустить внешнюю программу или игру?
Для запуска программы используйте функцию execute() :
Вы можете указать и полный путь к программе:
Игра также является программой, поэтому запускать ее нужно также как и программу через execute() .
Как запустить .bat файл на выполнение?
Чтобы запустить корректно .bat файл из программы используйте следующий код:
В этом пример мы запускаем file.bat , используем относительный путь, значит файл должен находится рядом с программой, которая его запускает.
Чтобы запустить .bat файл по полному пути, в котором есть пробелы используйте кавычки:
Как открыть файл на редактирование в системном редакторе?
Для того, чтобы открыть файл на редактирование в редакторе по-умолчанию, используйте следующий код:
Здесь в примере открывается файл рядом с программой readme.txt , обычно в notepad. Вы можете использовать и полный путь к файлу.
Как сделать открытие на весь экран, фулскрин?
Есть возможность открыть форму на весь экран через свойство fullScreen :
Здесь $this это форма и код внутри события. Если вы хотите перевести в fullscreen другую форму пишите так:
Чтобы выйти из режима полного экрана, достаточно присвоить false :
Как сделать запуск игры Minecraft?
Описание того, как сделать лаунчер для Minecraft, для запуска этой игры через программу.
Minecraft это игра написанная на языке Java, она требует установленной Java, запустить игру можно с помощью execute() и параметров:
Данный код должен работать на всех ОС.
Как запустить JAR файл если в системе установлена Java?
Особенности запуска jar приложений.
Для того, чтобы запустить JAR файл как программу нужно использовать функцию execute() и немного параметров:
В этом примере мы пытаемся запустить файл test.jar , который находится рядом с программой.
Важно понимать, что это будет работать при установленной Java в системе.
Для этого вы можете использовать класс php\io\Stream или file_get_contents , это самые простые способы:
Или вариант с обработкой ошибок:
Как сделать GET запрос по ссылке и получить JSON?
Описание того, как сделать запрос к ссылке, которая отдает json данные.
Вы можете использовать класс php\io\Stream и json функции для парсинга данных, далее приведен более правильный код, который учитывает возможность возникновения ошибки при обращении к сайту.
Если для вас этот код слишком сложен, то вы можете игнорировать ошибки и использовать старое апи:
Как определить есть ли у пользователя интернет?
Описание нескольких нетривиальных методов.
Простой способ
Это запросить данные с известного сайта:
Для проверки интернета в этом примере используется сайт яндекса, но вы можете использовать любой другой популярный сайт, в котором уверены больше.
Как загрузить картинку из интернета?
Чтобы скачать картинку, да и вообще любой файл, используйте класс php\lib\fs и его метод copy . Этот метод копирует файл из любого источника, в том числе и из ссылки:
Код выше, копирует (скачивает) изображение в файл pic.jpg рядом с программой. Вы можете указать и полный путь - куда надо сохранять картинку-файл.
Как запросить содержимое по ссылке в нужной кодировке?
Простой способ получить содержимое сайта через get запрос в нужной кодировке.
Скорее всего вам подойдет простой метод:
Метод декодирует полученный контент из объявленной кодировки в кодировку, которую использует DevelNext (юникод). В этом примере ссылка, например, отдается в кодировке windows-1251 , но DN использует другую.
Метод можно использовать без кодировки:
fs::get это аналог функции file_get_contents и Stream::getContents , он короче и удобнее в использовании и поддерживает возможность указать кодировку источника.
Как загрузить текстовый файл из интернета?
Для этого используйте класс php\io\Stream или функции file_get_contents и file_put_contents :
Простой способ
Метод fs::copy копирует из любого источника в файл, в данном примере в файл file.txt , который находится рядом с программой.
Николай Смирнов запись закреплена
Можно как то сделать браузер на develnext который будет открывать ссылку с массива и выполнять там js код?
К примеру открыть страницу сайта и выполнить клик по кнопке с ID photose
Павел Юркин ответил DELETED
Павел Юркин ответил DELETED
Павел Юркин ответил DELETED
Александр Волк ответил DELETED
Читайте также: