Project Viewer

Моя работа над генератором экранных форм началась с исследований структуры файлов, которые определяют внешний вид и функциональность проектов, созданных в среде разработки My Visual Database. В этот раз мы узнаем структуру файла forms.xml, в котором хранятся все экранные формы приложения, а заодно научимся читать файлы в формате XML.
К сожалению, компоненты TfxXMLDocument и TfxXMLItem, которые входят в состав доступных компонентов для скриптов, имеют ряд ограничений функциональности, которая весьма затрудняет работу с ними. В частности, TfxXMLDocument не загружает документы в кодировке UNICODE, но при этом TfxXMLItem подразумевает внутреннее представление именно в этой кодировке. Поэтому после нескольких безуспешных попыток использовать данные классы для чтения файла forms.xml, я решил обратиться к технологии OLE, в частности использовать предлагаемый Microsoft MSXML2.
Второй серьёзной проблемой на пути к цели стало отсутствие полноценной поддержки рекурсивного вызова процедур в FastScript. Как мне показалось, проблема кроется в том, что все переменные в FastScript по сути глобальные, никакого стека памяти для хранения их значений нет. Но чтения древовидной структуры подразумевает именно рекурсивный вызов, поэтому пришлось поломать голову над организацией хранения данных, из-за чего внешний вид рекурсивной процедуры вышел не таким элегантным, как ожидалось.
Читать: https://createmyvisualdatabaseapp.blogs … iewer.html
Визуальное программирование:
блог и
телеграм-канал.