Выложил несколько своих элементов для HiAsm. Возможно, кому-то пригодятся в работе или как пример для своих доработок.

github.com

Элементы пока в тестовом состоянии, поэтому что-то может работать не идеально.

Идея данного поста такова: хочется показать, что функциональность HiAsm можно расширять не только “чистыми” pascal-элементами, но и через внешние DLL. Где-то это NativeAOT DLL, где .NET Runtime на компьютере пользователя не нужен. Где-то может быть C++-обертка, если нужная библиотека плохо подходит для NativeAOT или с ним несовместима.

У такого подхода есть и минусы: нужно следить (и не только разработчику элементов) за разрядностью, версиями библиотек, экспортируемыми функциями и runtime-зависимостями конкретной DLL. Но зато появляется возможность использовать вещи, которые иначе было бы сложно или долго переносить прямо в HiAsm.

Состав:

- XMLNativeAOTEditor
  Невизуальный элемент для работы с XML через NativeAOT DLL: загрузка XML из строки/файла, XPath, namespaces, чтение и изменение узлов и атрибутов, сохранение результата.
  Ориентация: FPC2 x32/x64 ANSI/Unicode. Для него есть compile-check в чистой FPC2-среде. Элемент только недавно переведен на NativeAOT для компактности и почти не тестирован относительно версии NET9 в C++ обёртке.

- FPCWebBrowser
  Визуальный WebView2-браузер для FPC2 x32/x64 ANSI/Unicode. Делался как замена старому IE WebBrowser там, где нужен современный движок Edge/WebView2.
  Старый FPC 1.9.x и голый D4 HiAsm для него как целевую среду не заявляю, но при установленном компиляторе FPC2 - на D4 запускается.

- NativeAOTMail
  Набор элементов для SMTP/IMAP/POP3: MailSession, MailSend, MailList, MailRead, MailDelete. Отправка, список писем, чтение, сохранение вложений, удаление.
  Код содержит ветки под Delphi 4 и FPC/FPC2, но чистую совместимость на сторонней установке пока не заявляю: нужна проверка в конкретной среде.

По компилятору основная ориентация сейчас на HiAsm с установленным комплектом FPC2, включая x32/x64 и ANSI/Unicode-режимы. Это тот комплект из темы про новый компилятор FPC на известном форуме: в теме он упоминался как 2.6.0, но фактически там уже 3.2.3. Дублирую ссылку на файл:
https://disk.yandex.ru/d/9nHdCgy8OygKmA

DLL для XML и Mail собраны как NativeAOT, установленный .NET Runtime на целевой машине для них не требуется. Для FPCWebBrowser используется Microsoft Edge WebView2; WebView2 Runtime должен быть установлен отдельно, в комплекте только загрузчик WebView2Loader.dll.

Лицензия основного кода указана в файлах проекта: GPL-3.0. Для отдельных случаев в описании указано отдельное разрешение автора. По сторонним компонентам условия вынесены в THIRD-PARTY-NOTICES.

Если кто-то будет проверять - целесообразно делать на HiAsm с комплектом FPC2: x32/x64, ANSI/Unicode. Сейчас я в первую очередь ориентируюсь именно на FPC2 как на более современный компилятор, который дает возможность собирать x64.