Конструктор программ позволяет каждому пользователю ПК начать программировать без знания каких бы то ни было языков высокого уровня сразу же после установки среды.
Создать программу в HiAsm так же просто, как собрать фигурку из деталей лего - достаточно выбрать необходимый набор компонентов и соединить их друг с другом в цельную конструкцию.
Основной функционал:
Cоздание утилит, использующих базы данных и графику;
Перевод проектов на языки Free Pascal и Delphi;
Перенос конструкций на смартфоны (выборочно);
Разработка WEB-приложений с использованием HTML;
Разработка фоновых приложений, библиотек DLL и т.п.
Подробно:
Delphi & FPC
Базовый пакет, поставляющийся вместе со средой, позволяет разрабатывать Windows-приложения с использованием компонентов Интернета, баз данных, графики (GDI и OpenGL), широких мультимедийных возможностей (звук), поддержка COM-портов и многого другого, а также фоновые программы, апплеты панели управления, библиотеки DLL и прочее.
Android
Пакет позволяет разрабатывать приложения под Android, для смартфонов и планшетов.
PocketPC
Как и предыдущий пакет, позволяет разрабатывать приложения, но уже под Windows CE, то есть для КПК и частично смартфонов. Причём пакет построен таким образом, что схемы, собранные под PocketPC, практически без изменений можно переносить в Delphi&FPC и наоборот, что сокращает время как на саму разработку программы, так и на её портирование под другие платформы.
WEB
Как следует из названия, данный пакет позволяет разрабатывать WEB-приложения для серверной (скрипт на языке PHP) и клиентской стороны (JavaScript) с использованием языка разметки HTML. Отличительной особенностью данного пакета является то, что генерируемый по собранной схеме код практически не уступает по качеству тому, что мог бы написать разработчик вручную. Благодаря этому, данный пакет может также использоваться для автоматической генерации некоторых шаблонов WEB-приложений с последующей их ручной правкой.
FASM
Большей частью пакет служит примером и одновременно демонстрацией возможностей оболочки и потому интересен будет скорее всего только программистам, желающим разработать свой собственный пакет. Позволяет писать Win32-приложения на чистом ассемблере (Flat Assembler), с использованием компонентов вставки кода и связей между ними.
Qt
Пакет на основе Qt позволяет разрабатывать кроссплатформенные приложения. Сам HiAsm возможно запускать только через Wine.
wxWidgets
Пакет на основе wxWidgets, так же как и Qt, позволяет создавать кроссплатформенные приложения.
HiAsm - это не какой-то новый язык программирования, а всего лишь оболочка над обычным Паскалем. И компилятор используется FPC (или Delphi). Но весь код скрыт от программиста, ему остаётся лишь соединять компоненты связями, как в конструкторе, составляя схемы программ, а в код всё переводит сам HiAsm.
Конечно, гибкость программирования несколько страдает, но у программиста всегда есть возможность вставить код Паскаль в схему. Кроме того, в схему можно вставить код Gentee, JavaScript и VBScript. И всё это будет скомпилировано в одну программу.
Интуитивно понятный интерфейс
Интерфейс Конструктора программ много лет подряд дополнялся и расширялся для того, чтобы сделать работу пользователя наиболее быстрой и комфортной. Благодаря активному участию сообщества в Конструктор добавлено множество настроек, которые помогут каждому разработчику настроить среду под себя, а иногда и вовсе переписать отдельные его части используя лишь привычные и простые в понимании схемы.
Благодаря же стандартизации всех элементов и их свойств разобраться в принципах построения схемы так же не составит никакого труда и займет гораздо меньше времени, чем знакомство с любым даже самым простым языком программирования.
Множество инструментов оформления схем
Типичный внешний вид хорошо оформленной схемы с короткими описаниями к основным блокам и их цветовой раскраской можно увидеть на рисунке слева. Благодаря тому, что на схеме могут располагаться помимо функциональных элементов (влияющих на работу программы), на ней можно располагать и элементы оформления, значительно повышающие читаемость схемы. Такие элементы не участвуют в компиляции программы и никак на нее не влияют.
Оформление схем является не обязательной частью разработки приложения, но свидетельствует о хорошем стиле, который в будущем поможет самому разработчику быстрее вспомнить, за что отвечают те или иные части схемы.
Широкие возможности кастомизации GUI
Большинство пакетов конструктора содержит как нативные элементы интерфейса (предоставляемые операционной системой, браузером и т.д.), так и пользовательские, которые целиком и полностью отрисовываются движком пакета, давая разработчику возможность самому выбрать цвет, форму, стиль и т.п.
Кроме того используя компоненты для рисования разработчик может нарисовать свои собственные GUI элементы, я таким внешним видом, который требуется для его приложения.
Создание игр с поддержкой OpenGL и GDI
Пакеты для платформы Windows и Linux позволяют использовать элементы для работы с графическим API, таким как OpenGL, GDI (для Windows), Cairo(для Linux) и т.д. С помощью них разработчик получает возможность создавать простые 2D и 3D игры. Следует помнить о том, что Конструктор приложений не подходит для создания сложных игр, т.к. весь его арсенал заточен в первую очередь под прикладные программы.
И конечно же для полноценной игры необходимо работать со звуком, для чего в пакетах так же предусмотрены соответствующие элементы. Доступ к 3D графике же дает возможность не только создавать игры, но и небольшие демки для визуализации данных, процессов или иных сущностей. Ссылки : Официальный сайт Альтернативные сборки среды
Последний раз редактировалось ErikPshat; 14.08.2018 в 12:31.
Решил написать небольшой пример использования данной программы.
Скажу сразу, что не большой мастер писать подобные туториалы,уроки, не знаю как правильно обозвать, ну уж, что получится, то получится
Обычно все знакомство с подобного рода программами начинается с "Привет мир", но это скучно и не интересно, по этому начнем с интересного, а именно создадим графическую оболочку программе Make PKG Tools.
Оговорюсь сразу, сделать это можно по разному, но самый простой вариант вырезать кусочки кода из оригинального батника.
Вот они:
Debug
@echo off
set bt=MAKE PKG HAN TOOLS v2.5
TITLE -= %bt% =-= by PSPx Team =-
::
rem for /f "tokens=*" %%B in (%sfxcmd%) do cd /d %%~dpB
setlocal enabledelayedexpansion
set tls=%cd%\tools
set col=%tls%\nhcolor
set conf=%tls%\package.conf
set OS=x64& if "%PROCESSOR_ARCHITECTURE%"=="x86" (
if not defined PROCESSOR_ARCHITEW6432 set OS=x86
)
Echo %TIME% -------------------------------- >log.txt
Echo %bt% -= by PSPx Team =- >>log.txt
Echo for site pspx.ru >>log.txt
Echo %OS% bit. >>log.txt
Echo -------------------------------------------- >>log.txt
for /d %%d in (*) do (
if exist %%d\PARAM.SFO (
set str=%%d0000000
set dir=!str:~0,16!
set dir=!dir:-=0!
set dir=!dir:_=0!
for /f "usebackq tokens=3" %%a in (`%tls%\sfoprint "%%d\PARAM.SFO" TITLE_ID`) do set title=%%a
for /f "usebackq tokens=3" %%b in (`%tls%\sfoprint "%%d\PARAM.SFO" CATEGORY`) do set cat=%%b
for /f "usebackq tokens=3" %%c in (`%tls%\sfoprint "%%d\PARAM.SFO" APP_VER`) do set apver=%%c
if not defined apver set apver=1.00
if !cat!==GD (
set ct=GameData
set pt=DiscGamePatch
set n1=2PATCH
)
if !cat!==HD (
set ct=GameExec
set pt=HDDGamePatch
set n1=1HGAME
)
if !cat!==HG (
set ct=GameExec
set pt=HDDGamePatch
set n1=1HGAME
)
if !cat!==DG (
set ct=GameExec
set pt=HDDGamePatch
set n1=1DGAME
)
if !cat!==AT (
set ct=GameExec
set pt=HDDGamePatch
set n1=10AT00
)
%tls%\sfoprint "%%d\PARAM.SFO" TITLE |%col% 0E
%tls%\sfoprint "%%d\PARAM.SFO" TITLE_ID |%col% 0B
%tls%\sfoprint "%%d\PARAM.SFO" APP_VER |%col% 0B
echo FOLDER : %%d |%col% 09
echo Making DEBUG PKG. WAIT... |%col% 0A
echo ContentID = !n1!-!dir:~0,9!_00-!dir! > %conf%
echo Klicensee = 0x00000000000000000000000000000000 >> %conf%
echo DRMType = Free >> %conf%
echo ContentType = !ct! >> %conf%
echo PackageType = !pt! >> %conf%
echo InstallDirectory = %%d >> %conf%
echo PackageVersion = !apver! >> %conf%
start %tls%\wbs "Creating DEBUG PKG..." "Please wait, the Debug PKG is being created..." /marquee
cmd /c "%tls%\psn_package_npdrm.exe -n -f %conf% %%d" >>log.txt
%tls%\wbs "Creating DEBUG PKG..." "Done. Debug PKG created for $sec seconds" /Stop /timeout:3
del /q %conf%
)
)
Enable
@echo off
set bt=MAKE PKG HAN TOOLS v2.5
TITLE -= %bt% =-= by PSPx Team =-
::
rem for /f "tokens=*" %%B in (%sfxcmd%) do cd /d %%~dpB
setlocal enabledelayedexpansion
set tls=%cd%\tools
set col=%tls%\nhcolor
set conf=%tls%\package.conf
set OS=x64& if "%PROCESSOR_ARCHITECTURE%"=="x86" (
if not defined PROCESSOR_ARCHITEW6432 set OS=x86
)
Echo %TIME% -------------------------------- >log.txt
Echo %bt% -= by PSPx Team =- >>log.txt
Echo for site pspx.ru >>log.txt
Echo %OS% bit. >>log.txt
Echo -------------------------------------------- >>log.txt
for %%I in (*.pkg) do (
echo Signing DEBUG PKG to RETAIL... |%col% 0A
echo %%I |%col% 09
echo | %tls%\ps3xploit_rifgen_edatresign %%I ps3 >>log.txt
echo.
ren %%~nI.pkg_signed.pkg %%~nI_sign.pkg >>log.txt
del /q %%I >>log.txt
)
goto :end
Скачиваем и устанавливаем HiAsm
Создаем новую папку в корне любого диска (желательно D\), называем ее к примеру MAKE, внутри создаем два текстовых файла, переименовываем их в debug и enable открываем первый любым текстовым редактором (блокнотом к примеру) и вставляем код из спойлера debug, сохраняем, меняем расширение файла с .txt на .bat.
Тоже проделываем и со вторым файлом, только имя ему будет enable, а код копируем из спойлера enable.
В итоге получаем два батника debug.bat и enable.bat.
В папку MAKE, копируем папку tools (из оригинальной папки с Make Tools).
Вот итог:
Запускаем установленный HiAsm, выбираем Файл>Новый откроется окно с типом будущего проекта, выбираем Windows>Приложение Windows>OK.
Перед нами, чистое поле, с одним единственным компонентом MainForm это и есть окно, нашей будущей программы.
Слева вкладка Элементы это различные кнопки, надписи и прочие "вкусности" в том числе и сами механизмы работы будущей программы (логика, строки, компоненты для работы с системой и т.д ).
Справа вкладка Свойства в ней мы меняем любой параметр выбранного элемента (цвета, название, шрифты и т.д).
Во вкладке Свойства, есть вкладка Точки, это тоже очень важная вкладка и про нее не следует забывать
Все соединения элементов в программе происходит, за счет точек вокруг любого элемента.
Итак, идем во вкладку Элементы>Интерфейс и выкидываем на рабочее поле (щелкаем по нужному, потом по рабочему полю) элемент Button или ButtonRush кнопки, в количестве двух штук.
Разница между ними в том, что второй вариант имеет расширенный графический интерфейс и смотрится посимпатичнее.
По любому элементу программы можно почитать справку, выделив нужный и нажав F1.
Идем во вкладку Элементы>Файлы берем два "кубика" DIR(Папки) тоже пару штук.
Элемент отвечает за работу с каталогами и папками.
Далее, выкидываем еще по парочке элементов Элементы>Строки>StrCat(Соединение).
Как понятно из названия, элемент соединяет, соединяет два слова в одно, два предложения в одно и т.д.
У нас он будет соединять путь к нашим батникам.
И последний элемент Элементы>Система>WinExec(Запуск приложений)
Элемент запускает сторонние приложения.
Вот, что в итоге получается
Соединяем это все дело связями, щелкаем на точку ,и не отпуская левой клавиши мыши, тянем к другой точке.
Соединяем это все добро,вот так:
Настраиваем визуальный вид формы, кнопочек.
Щелкаем по Редактор форм (расположен в верхней панели) вот так будет выглядеть наша программа, как то грустно...
Расставляем наши две кнопки, как считаем нужным.
Размеры можно менять растягивая любой элемент за края, так же поступаем и с окном формы.
Примечание: если вдруг кнопки, да и вообще любой элемент убегает за пределы формы вернуть его можно двумя способами.
1. Растягиваем форму за края, пока "убежавший" элемент не найдется, передвигаем его куда нужно и возвращаем форме исходное состояние.
2. Выделяем нужный элемент в окне редактора "кубиков", возвращаемся назад в Редактор форм (элемент остается выделенным).
Идем во вкладку Свойства>Place и ставим параметры Left и Top по нулям, появившийся элемент двигаем в нужное место.
Расставили? идем дальше, выделяем первую кнопку и возвращаемся назад в окно редактора, смотрим какая выделена.
Заходим во вкладку Свойства>Caption и меняем название кнопки.
Я сделал так:
Обратите внимание: если выделяете первую кнопку в редакторе, она же выделяется в окне форм, то есть верхняя должна быть "Создать не подписанный PKG", а нижняя "Подписать PKG".
Можно и в другом порядке, главное, что бы знали какая это кнопка в редакторе "кубиков", назовем его Редактор кода дальше буду писать именно так.
Цвета, шрифты и прочие параметры можно менять во вкладке Свойства.
Когда все сделано, программа стала симпатичнее, сохраняем наш проект в папку MAKE, для этого щелкаем Сохранить как... в верхней панели, имя проекту можете дать любое.
Все теперь самое интересное, заставляем все это работать
Алгоритм работы такой: когда мы клацкаем по кнопке, берется путь с точки CurrentDir элемента DIR.
Далее передается в элемент StrCat на точку str1, в элементе соединяются левая и правая сторона вместе, и получается полный путь до батника.
Далее с точки onStrCat элемента StrCat, готовый путь, передается на точку doExec элемента WinExec и нужный батник запускается.
Последние настройки и готово.
Щелкаем на элементе StrCat и в окне Свойств в параметре Str2 пишем debug.bat.
На втором элементе проделываем тоже самое, только пишем enable.bat.
ВСЕ!!!
Нажимаем заветную кнопочку Запустить (зеленый треугольник) в верхней панели.
Проект компилируется и в папке MAKE появляется .exe файл нашей программы.
Закидываем папки с игрой (вида B и N) и пробуем, что получилось.
На заметку:
Программа, всего лишь оболочка и правильная работа батников возможна, если в пути не будет кириллицы, пробелов и спец-символов.
Заключение:
Программу можно улучшить, добавив остальные функции из Make Tools, добавить автозапуск HFS, прицепить показ и смену порта, добавить проверку на PKG в папке, ну и многое другое.
Здесь я показал лишь маленький пример, стараясь рассказать как можно подробней, но все возможности в одной статье охватить трудно.
Помощь по программе можно получить на Форуме HiAsm.
Так же есть не плохие обучающие Видео.
Последний раз редактировалось BaseD; 04.12.2018 в 17:34.
Скачайте и установите программу Tortoisesvn, и русский Language Pack, если английский язык вам не даётся. После установки TortioseSVN нужно перезагрузить систему.
Перейдите в директорию hiasm, создайте пустую папку "Elem" и нажмите на ней правой кнопкой мыши; в появивщемся меню выберите пункт "SVN Checkout".
В появившемся диалоговом окне в поле "URL of repository" введите http://svn.hiasm.com/packs/ и нажмите OK.
Если всё прошло удачно вы увидите как программа начнёт синхронизировать ваши коды с хранящимися на сервере.
Возможные проблемы
Вопрос: Ничего не обновляется!
Ответ: Возможно, вы выходите в Интернет через proxy-сервер. Для того, чтобы программа выходила в Интернет через proxy, проделайте следующие шаги:
1. На папке Elem нажмите правую кнопку и выберите пункт "TortioseSVN" подпункт "Settings"
2. В левой части появившегося окна выберите пункт "Network", включите флажок "Enable proxy server" и введите настройки вашего proxy сервера (если вы не знаете - свяжитесь с службой поддержки вашего провайдера)
3. После заполнения всех полей нажмите OK
Вопрос: Файлы обновились, но возле некоторых из них написано "Conflicted"
Ответ: Эта надпись обозначает, что ваша версия компонентов слишком сильно отличается от версии на сервере, поэтому программа не может синхронизировать их. Запомните, на какие файлы программа ругалась, закройте окно программы, перенесите (скопируйте и удалите исходные файлы) их в другое место (напомню: желательно пернести пару pas+ini во избежание проблем). Теперь выполните Шаг 8. Проблема должна решиться.
Скопируйте содержимое (включая скрытые директории .svn!) директории Elem в директорию Elements.
Удалите директорию Elem.
Обновите CodeGen.dll и hiMakeXXX.dll, для этого выполните файлы Elements/Delphi/make.bat и Elements/Delphi/make/make.bat . Если Вы устанавливали дополнительные пакеты (PocketPC, FASM, Web, Modules, ...), то выполните файлы Elementsимя_пакетаmake.bat, Elementsимя_пакетаmakemake.bat.
Если произошло обновление файла Elements.sql, то необходимо обновить соответствующую базу элеметов (Elements.db). Для этого выполните файл Elementsимя_пакетаsql_to_db.bat. Если его нет, попросите разработчика соответствующего пакета исправить эту оплошность После этого необходимо переустановить дополнительные элементы, если они были установлены
Примичание: Если у Вас были установлены дополнительные компоненты, Вам придётся их переустановить.
Для последующих обновлений достаточно:
Нажать правой кнопкой на папке "Elements" и выберите "SVN Update".
Выполнить пункт 6
Выполнить пункт 7
Последний раз редактировалось ErikPshat; 30.11.2018 в 23:52.
BaseD, подскажи, у winexec есть свойство MODE - если задать SW_HIDE консоль не показывается. Можно как-то управлять этим значением? Например сделать чекбокс, в зависимости от того включен или выключен делать mode либо SW_HIDE, либо SW_NORMAL
BaseD, подскажи, у winexec есть свойство MODE - если задать SW_HIDE консоль не показывается. Можно как-то управлять этим значением? Например сделать чекбокс, в зависимости от того включен или выключен делать mode либо SW_HIDE, либо SW_NORMAL
Каких то точек у него нет(MODE) спросил на форуме, жду ответ. http://forum.hiasm.com/topic/67031
Есть точка PARAMS, пробовал подкидывать значения...не работает.
Последний раз редактировалось BaseD; 13.08.2018 в 10:29.
Маленько поковырялся https://yadi.sk/d/OcAtzF5b3aAsQv
Добавил IP адрес (берется из файла Host) и порт.
Значения записываются в ip.ini и port.ini
Добавил марафету в схеме
P.S есть маленький косяк с ip, при первом запуске не показывает, нужно закрыть и открыть программу повторно.
Связано с тем, что ip.ini создается после закрытия программы (надо подправлять).
Последний раз редактировалось BaseD; 13.08.2018 в 10:47.
Меня вот что волнует - как сделать вывод, вместо чёрной консоли бвтника, в окно программы?
Чую там нужно как-то оперировать stdin/stdout в форму окна с прокруткой.
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram
Меня вот что волнует - как сделать вывод, вместо чёрной консоли бвтника, в окно программы?
Чую там нужно как-то оперировать stdin/stdout в форму окна с прокруткой.
Вроде этого?
Нужно компоненту WinExec добавить точку doConsoleExec и на нее уже "кидать" связи от наших кнопок, добавить еще точку onConsoleResult и уже с нее снимать результат.
Последний раз редактировалось BaseD; 14.08.2018 в 13:44.
Так вроде цифры прогресса в статуссбаре отображаются (проверял пока паковку). Как отобразить не цифрами, а баром? Подавал на точку DoPosBar - никакой реакции.
Насколько понял, там проблема в том что данные передаются не цифрами, а в виде процента. Как преобразовать?
BaseD, так зачем мы с тобой бар думаешь делаем? я в батнике уже убрал. И эту панель с логом надо динамической сделать, когда надо включать, а по умолчанию отключить.
in1975, конечно, скролл обязательнот нужен. И это, когда ты уберёшь zenity.exe, он постоянно не позволяет мне никакие кнопочки нажимать, даже когда кнопку "Отмена" нажимаю, оно постоянно выскакивает с поиском ошибок. До сих пор пакую PKG своим v1.8.
Прошу любить и жаловать, Ваш Добро пожаловать в наш Чат в Telegram