Вверх ↑
Этот топик читают: Гость
Ответов: 963
Рейтинг: 12
#1: 2016-04-09 14:06:32 ЛС | профиль | цитата
Не совсем уверен, что это тема подходит для этого раздела ...
Но со одной стороны это явно ЗАДАЧА(и даже чуть чуть "идея фикс" ) выросшая из идей ХайАсма ..
С другой вроде не про ХайАсм вообще , но думаю мастерам ХайАсма будет интересно...

И так года дав назад задумал я взять и развить идею ХайАсма по своему .

Назвал проект как вы уже догадались MidAsm ...




Альтернативная графическая среда быстрой разработки программ MidelAsm подобная HiAsm но более открытая с полной ДВУНАПРАВЛЕННОЙ конверсий

Алгоритмическая схема -> Исходный текст на ЯВУ
Исходный текст на ЯВУ -> Алгоритмическая схема

Так чтобы любая конструкция языка имела графическое представление и любой элемент схемы имел отражение в исходном тексте ...

В ХайАсме слишком много механизмов недоступных для изучения или устроенных непрозрачно с заточкой именно под использование в виде части графической схемы..
Генерируемые ХайАсмом коды в ЯВУ практически не читаемы.

Но если все будет прозрачно "сверху донизу" то можно будет использовать как достоинства крупно блочной наглядности ХайАсма так и возможность корректировать любой участок исходного кода не теряя доступа к редактированию в форме схемы ...

Эдакий "корпускулярно-волновой" дуализм в приложении к программированию



Проект несколько раз замораживался на долгое время ...
Но недавно я вернулся к нему и используя наработанный там код начал собирать специализированный редактор веб-страниц
(Но одновременно это является развитием разработки МидАсма )
Что уже есть ?
1 Визуальная среда похожая на редактор форм ХайАсма
2 Элементы(инструменты) которые можно добавлять без необходимости лезть в основной код
(все сделано через кроткие простые скрипты причем на паскале )
Идея проста как двери ...
Выбираем элемент -> водим нужные данные и его расположение мышкой -> запускаем скрипт "генерации команды" (внутренний формат подобие SHA )
-> запускаю скрипт прорисовки элемента по команде
Дополнительно есть скрипты для заполнения полей "инспектора элементов" и возвращения изменений в команду (пока только для текущей команды )

Но это еще не все ! Есть то без чего я бы не стал писать это пост сюда ...
Да, это кодогенерация ... Пока все линейно и просто, есть последовательность команд во внутреннем формате
(Кстати, по моему формат команд в одну строчку, куда проще того что есть в SHA) команды транслируются с помощью отдельных скриптов в HTML код ... и вставляется в фоновый шаблон ...

Но фокус в том, что уже сейчас не меняя ни строчки основного кода, изменив только скрипты "кодогенерации" и фоновый шаблон, на выходе можно получать ЛЮБОЙ код включая и код, который можно скомпилировать в отдельную программу .

Да пока все на стадии раней альфы даже для редактора HTML но и ХайАсм не сразу вырос в нынешнее продвинутое состояние



FORM_RED 0.0.0.4.18.7 альфа FR0004_18_7bin.7z
(Обратите внимание на номер версии и не судите слишком строго... проект в самом начале разработки )

Язык написания freepascal(FPC) + Лазарус 1.4.2 (сугубо на стандартной библиотеке LCL)

Графические элементы транслируются в код SVG расширения HTML что означает что видно их будет не во всех браузерах .
(Но тех что его поддерживают достаточно много )

Свежая сборка (Описание в конце темы )
07.04.2017
FR0004_20_5_47_5_bin.7z
-------

Зы
Как только программа наберет приличную функциональность планирую выложить исходники .
(Ничего секретного там нет, а среда разработки свободно распространяемый Лазарус )

Редактировалось 13 раз(а), последний 2017-07-13 15:44:53
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 2059
Рейтинг: 131
#2: 2016-04-09 15:00:30 ЛС | профиль | цитата
AlexKir писал(а):
Исходный текст на ЯВУ -> Алгоритмическая схема
, может быть отсюда можно чего-то почерпнуть?
http://www.softsoft.ru/development/c-c-c/34121.htm
карма: 6

0
Ответов: 963
Рейтинг: 12
#3: 2016-04-09 15:08:01 ЛС | профиль | цитата
Спасибо, посмотрю !

карма: 0

0
Ответов: 2059
Рейтинг: 131
#4: 2016-04-09 15:17:37 ЛС | профиль | цитата
AlexKir писал(а):
Спасибо, посмотрю !

https://yadi.sk/d/40moCqC0qrf8L
Ещё тут посмотри
http://softconstructors.com/ru/applications/visualpascal/index.html
карма: 6

0
Администрация
Ответов: 15294
Рейтинг: 1518
#5: 2016-04-09 19:10:57 ЛС | профиль | цитата
AlexKir писал(а):
Генерируемые ХайАсмом коды в ЯВУ практически не читаемы.

С этим утверждением можно поспорить - в пакете Windows на стандартном кодогенераторе генерируемый код представляет из себя только линки между элементами, коды всех элементов находятся в отдельных файлах и не меняются в конечном приложении. В пакетах на базе RTCG (см. пример тут http://forum.hiasm.net/forum.html?q=3&t=57420) код генерируется ровно такой, каким его пожелает видеть разработчик пакета и максимум, что там может быть не читаемым это названия переменных или объектов (т.к. чаще всего у них вид MyObject№ - где № произвольное число). И то, если сильно хочется это исправить, то разработчик может заставить давать имена всем элементам на схеме. От среды тут в общем-то говоря вообще ничего не зависит.

Что касается возможности иметь одновременно и код и визуальное представление, то это не реализуемая в общем случае задача. Причина тут ровно та же, что и в проблеме восстановления кода из ассемблера в любой ЯВУ - потеря огромного массива данных после компиляции. Конечно же из исходного кода, собираемого например кодогенератором RTCG, при наличии шаблонов всех элементов и очень умного трассировщика, который сумеет расставить элементы на поле, можно попробовать восстановить схему, однако эта задача будет все более и более сложной по мере роста числа элементов с пересекающимися участками кода и по мере увеличения оптимизаций в схеме.
карма: 26
0
Ответов: 963
Рейтинг: 12
#6: 2016-04-09 23:48:41 ЛС | профиль | цитата
Согласен с большинством утверждений, но все-же пробовать буду !

Вне всяких сомнений задача обратной трансляции из кода в схему в "общем виде" решается не полностью ...

Но если код был изначально создан самим конструктором возможны варианты ...
1 Никто не может запретить вставить в код комментарии с дополнительной информаций о положении элементов

2 Или вообще вывести в комплект проекта дополнительный текстовый файл с координатами прочими атрибутами нужными для отображения схемы
По сути это будут те же самые файлы форм ресурсов и настроек (dfm,lfm,res,lps и т.д.) с данными не входящими в листинг, но являющимися частью почти любого проекта на языке программирования, создаваемом в современном средстве разработки ...
[offtop]
Ведь можно же было "просто" увешать код константами и присвоениями "не заморачиваясь" с внешними ресурсами (как это кстати пытается делать самопальная "визуальная надстройка" над КОЛ библиотека "зеркальных классов"(или вернее компонентов ? ) МСК )
Но почему-то без крайней нужды( как случае с МСК) никто так не поступает ..
[/offtop]
Вывод: ничто не может помешать включить в проект дополнительные файлы но при этом сохранить и читабельность генерируемого кода и возможность после его легкого "модинга" вернутся к визуальной схеме ...

Кстати, в этом случае отпадет нужда в записи в форме подобной SHA ( разве что как аналог tpu obj и т.п. )





P.S.

И еще "мучают меня смутные сомнения" относительно совершенно лишней работы по установке элементов мышкой и "ручной проводки" связей ...
Может стоит отчасти автоматизировать процесс ?
То есть тыкаем в одни элемент схемы выпадает окно с выбором точек тыкаем в другой тоже самое... вбираем... Хлоп связь готова ! Ни случайно "перескочить" на другую точку ни разорвать при редактировании связь уже не может... (добавить коленца, разрывы, и витвления сколько хоите а вот разорвать только по специальной команде через список точек ... )

Тоже с первичной установкой элемента на схеме... Что если изначально строить цепочки элементов автоматически ?
Как это, кстати, похожим образом происходит в редакторе форм ХайАсма .... Там ведь по умолчанию, в качестве положения на форме выбирается положение элемента на схеме ... ( нужно ведь куда-то разместить визуальный элемент, если форма еще ни разу не открывалась .. )
(То есть потом двигать можно куда угодно но изначально элементы устанавливаются в определенном прядке ... (Например в порядке "живой очереди":
Если нет ветвления элементы нанизываются на горизонтальную "ось времени выполнения " что кстати будет способствовать преодолению проблемы "кольцевания" то есть ИМХО стоит разделить связи данных и поток исполнения команд ..)


P.P.S.
Забавно но у меня в редакторе уже есть что-то похожее правда пока только на "невидимом" уровне скриптов ...
Есть список команд и каждая в общем случае обрабатывается своей группой скриптов .

Но еще есть общее "поле параметров" через которое любой скрипт может оставить сообщение, как основному коду программы, так и любому произвольному скрипту хоть "себе на память" "Я уже здесь был делал то-то и то-то нужно продолжить/закончить!"... Хоть любому другому скрипту выполняемому позже ... например что-то вроде сообщения "Приятель не рисуй тут, место занято !"....

[offtop]
Народ я не троль, а инвалид и у меня реальные проблемы с точными движениями и иногда с вниманием .
Других мозгов и рук мне никто не выдаст пользуюсь теми что есть ... Прошу извинить за иногда корявый стиль и опечатки . Я честно стараюсь все исправить... Но знаете что ? Иногда даже у меня все-же что-то получается ! Чего и всем желаю !Ведь если даже у меня получается то у вас и подавно все будет "зашибись" !! Не задавайтесь ! Все равно некому ...

[/offtop]
карма: 0

1
Голосовали:ser_davkin
Ответов: 963
Рейтинг: 12
#7: 2016-04-13 14:20:56 ЛС | профиль | цитата
Между прочим моя программа все больше напоминает ХайАсм даже по внешнему виду..
Добавил разделы для элементов .




Увеличить...

На новую версию которую не стыдно вложить изменений маловато но "продолжение следует..."

карма: 0

0
Администрация
Ответов: 15294
Рейтинг: 1518
#8: 2016-04-13 18:18:46 ЛС | профиль | цитата
AlexKir писал(а):
2 Или вообще вывести в комплект проекта дополнительный текстовый файл с координатами прочими атрибутами нужными для отображения схемы

Ну знаете, если так рассуждать, то и никто не мешает всю схему вставить комментарием в исходник Если мы допускаем такое, то проще уж тупо размечать участки кода, относящиеся к разным элементам, однако я бы хотел все же немного теории, прежде, чем приступать к практике (а вдруг это сэкономит вам время): я не знаю, в каком виде ваш гипотетический конструктор делает код, но раз вы заговорили о читаемости, то очевидно максимально приближенный к тому, что пишет программист руками. Теперь давайте возьмем схему всего из двух элементов - цикла For(считает от 1 до 10) и элемента Message(выводит сообщение с заданным текстом) и соединим их вместе. У нас получится программа, которая выводит ряд чисел от 1 до 10. Код выглядеть будет примерно так:
#cpp
for(int i = 1; i <= 10; i++) {
message(i);
}

теперь я беру и правлю исходный код следующим образом:
#cpp
for(int i = 1; i <= 10; i++) {
message(i*2);
}

скажите: каким образом эту простую правку можно восстановить обратно в схему? А что если изменения кода будут еще более существенными? Как вам помогут комментарии о положении элементов восстанавливать такие правки?

AlexKir писал(а):
То есть тыкаем в одни элемент схемы выпадает окно с выбором точек тыкаем в другой тоже самое... вбираем... Хлоп связь готова !

Какая же это автоматизация? Сейчас в HiAsm/Hion чтобы поставить новый элемент на схему и сразу соединить его с точкой другого элемента нужно всего три клика(два если мы не считаем клик для выбора элемента из палитры). Ваш вариант в большинстве случаев будет в несколько раз медленнее.
карма: 26
0
Ответов: 963
Рейтинг: 12
#9: 2016-04-13 23:38:46 ЛС | профиль | цитата
Я уже довольно давно предложил «иерархию кода»

0 Код проект
1 Код модуль
2 Код объект (класс)
3 Код метод
4 Код функция (процедура)….
5 Код линейная вставка между Begin и end
(на этом уровне все операторы буду просто списком последовательно вызываемых
функций вместо цикла «функция итератор»(не сколько разнавидностей ) в место условия процедура с тремя параметрами _IF( условие:boolean; var then, else: procedure; );
...то есть никакого явного ветвления, внутри блока все единообразно !
Даже присвоение будет работать примерно так LET (A,B+C+2) )

6 И наконец самый нижний уровень «код выражение»
a+b*с или a<1 …

Улавливаешь ?
То что ты изменишь message(i); на message(i*2);
в схеме может быть показано например
так

/I/
|
---- message ----
а потом так

/I*2/
|
---- message ----


где I локально описана выше в блоке «код процедура», а может быть встроенной переменной итератора …

То есть я не обираюсь разбирать код ниже «кода выражения» …
Как напишут так и будет ! Напишут чушь - получат ошибку .

Изюминка из хайасма «программирование без кода» будет сохранена за счет блоков более высокого уровня … Но я надеюсь, что не будет «плясок с бубном» при необходимости заменить встроенный код или добавить свой (причём на любом уровне !)

Разумеется, все это нуждается в проработке …

Но сейчас я вплотную подобрался к генерации скриптов для выполнение их на сервере для создания динамического веб-приложения так что полигон будет почти идеальный …

(Почти полностью контролируемая мной среда выполнения по сути «песочница» )

В общем продолжение следует !
Ps
Удалите если нетрудно верхний пост ( Опять поспешил.. м да ну и имена раздает автоматом наша киевская "воля кабель"... обхохочешься! )

карма: 0

0
Администрация
Ответов: 15294
Рейтинг: 1518
#10: 2016-04-14 07:30:29 ЛС | профиль | цитата
AlexKir, ну т.е. для решения этой задачи среда будет содержать лишь элементы - аналоги операторов целевого языка? Ну максимум, что можно добавить еще это элемнты, которые заменяют одну функцию в языке(как вывод сообщения выше). При таком подходе, когда большая часть элементов низкоуровневые и содержат произвольный код пользователя смысла от графического представления тем меньше, чем больше элементов будет использовано. Я уже не говорю о том, какой простор тут открывается для использования в элементах одних и тех же глобальных переменных, объектов и классов, взаимосвязь между которыми на схеме не будет представленна абсолютно никак. Разобраться в ней стороннему человеку станет нереально - проще будет действительно изучать сразу код, а не графическое представление.
карма: 26
0
Ответов: 963
Рейтинг: 12
#11: 2016-04-15 02:21:22 ЛС | профиль | цитата
AlexKir, ну т.е. для решения этой задачи среда будет содержать лишь элементы - аналоги операторов целевого языка? Ну максимум, что можно добавить еще это элемнты, которые заменяют одну функцию в языке(как вывод сообщения выше). При таком подходе, когда большая часть элементов низкоуровневые и содержат произвольный код пользователя смысла от графического представления тем меньше, чем больше элементов будет использовано. Я уже не говорю о том, какой простор тут открывается для использования в элементах одних и тех же глобальных переменных, объектов и классов, взаимосвязь между которыми на схеме не будет представленна абсолютно никак. Разобраться в ней стороннему человеку станет нереально - проще будет действительно изучать сразу код, а не графическое представление.


Все верно, но я планирую сделать так, что-бы большая часть сборки проходила примерно на том же уровне, что и в хайасме то есть основные элементы будут на уровне модуля или как минимум класса …

Но единообразие кода нижнего уровня позволит заглянуть «под капот» причём без «водораздела» элемента и его функционала …

То есть открыв элемент по привычному Ctrl-F мы увидим не код, а СХЕМУ !
Да! Все элементы Мид-Асм будут сразу написаны на Мид-Асме...
(Знаю все это можно делать и в Хайасме но изначально разделённое описание кода функционала и схемы съедает очень много полезного и получается очень чёткая грань
делящая «КОДЕРОВ» и «ХУДОЖНИКОВ» )

Кстати,я реально попал между двумя "кастами" "ХайАсмитов" я так и не преодолел психологического барьера, в написании новых элементов Хайасма ( IC сколько угодно .. даже править исходящий код вполне при нужде могу... А вот писать свои элементы «душа сопротивляется» притом, что чисто технически никаких проблем понятное дело нет … Думаю, что что-то похожее имеет место не только у меня! )

Проблемы с целевым языком на уровне «кода выражений» тоже слабо существенны ...
Кроме форта и ассемблера ( Да и там можно схитрить) все более или мене единообразно или легко приводимо к общему знаменателю ….

Между прочим можно довольно просто сделать и привычный по ХайАсму поток данных …
Если «входящее выражение» явно отсутствует в код вставляется переменяя CurStream.
То есть

---MESSAGE-- >

будет эквивалентно

CurStream
|
---MESSAGE-- >



карма: 0

0
Администрация
Ответов: 15294
Рейтинг: 1518
#12: 2016-04-15 15:15:27 ЛС | профиль | цитата
AlexKir, на самом деле все, что мы тут сейчас обсуждаем, обсуждалось еще в годах этак 2006-2009, а может и даже раньше. И представление элементов не кодом, а другими более низкоуровневыми элементами тоже обсуждалось. К сожалению с тех пор так никто и не смог придумать, как представить код визуально графичискими элементами такого типа, чтобы читаемость не упала до нуля. Простое правило: чем больше функционала в элементах, из которых состоит схема, тем больше ее читаемость и наоборот - чем меньше функционала в элементах, тем ниже читаемость представленной ими схемы. Попробуйте взять карандаш и бумагу и проделать все то, что вы хотите, снача с помощью них.
карма: 26
0
Ответов: 963
Рейтинг: 12
#13: 2016-04-17 22:06:12 ЛС | профиль | цитата
Ни сколько не сомневаюсь, что «все украдено до нас»...

Я кстати для ХайАсма на бумаге программировать пытался .
(Распечатал вкладки и описания элементов и вперёд …
И получалось ведь !)

И разумеется я прикидывал как буду делать «по своему» …

Но давно я понял, что «теоретическое программирование » вещь хоть и полезная но для меня крайне не эффективная … (Все равно в реальной программе получается иначе )
Так что буду писать исправлять и снова писать . Результат будет, можно не сомневаться …

Возможно в результате выйдет почти полный аналог ХайАсма …

Но это будет МОЙ аналог, а значит хоть чем-то да отличатся будет...
(хочется верить не только другим набором ошибок и глюков но и концептуально )

Уже сейчас видно, что у меня будет чуть другой подход
например к описанию новых элементов ...

Уже например ясно, что в МидАсме не будет фиксированного внешнего вида элементов на схеме …
(У меня просто есть набор скриптов «для всего»... )
[offtop]
Пока все работает на уровне "Редактора Форм"... схем ещё нет но каждый из элементов может иметь свой отдельный скрипт для своего отображения в поле редактора …
Есть отдельный скрипт для генерации внешнего кода и несколько скриптов для обработки данных .

Главный создаёт «команду» (внутренне описание аналог SHA ) на основе данных от мышки и текущих установок цвета,шрифта или дополнительных данных из "инспектора элементов" .

Если я верно понимаю в Хайасме SHA код формируется только для чтения/записи у меня же после ввода координат (в простейшем случе ) все данные о текущем состоянии элемента идут виде тестовой команды наподобие командного режима в АВТОКАДЕ
Можно даже водить их вручную (хотя это сугубо вспомогательный режим )
[/offtop]

Дальше будет ещё интереснее …

Уже сейчас есть «КлипАрт» в котором, можно располагать группы элементов и которые, можно вставить любую точку рабочего поля редактора как единое целое .

Следующим шагом, будет «Макрос» блок с параметрами и особым скриптом
добавляющий функциональности готовым блокам .

Потом добавлю уровень схемы сделанный аналогично …

То есть у меня изначально более гибкая архитектура.

Изначально среда разработки НИЧЕГО не знает о элементах, все что от нее требуется предоставить библиотеку функций и исполнить скрипты предоставив им нужные данные …

Все прочее «на свести» скриптов .

Например элемент CMD вообще сам ничего не рисует, там всего одни скрипт берущий из общей строки ввода текст и кидающий его в список команд … Если это будет рабочая команда, она будет исполнена скриптами совсем другого элемента …
Можно поставить проверку синтаксиса но и это будет полностью в ведении скрипта....

карма: 0

0
Ответов: 963
Рейтинг: 12
#14: 2016-04-19 18:08:10 ЛС | профиль | цитата
Борьба с собственной тупостью успешно продолжается !

"Этапы большого пути.."



Увеличить...

Главное отличие версии в возможности использовать библиотеку Raphael.js .


Вообще думаю, что в эту тему буду сбрасывать только глобальные и "концептуальные" обновления ...

Но тут извините не удержался! Уж больно Raphael.js красиво работает
как видно на скрине ниже все отлично даже на "том самом" IE8 !


Увеличить...

Извиняюсь в "микро дополнение" (точнее в скрипты элемента "градиент" )тихой сапой влезла тупейшая из тупых ошибок ...
Но не ошибается, как известно, только тот кто ничего не делает .

Так что вместо извинений ловите полную сборку ! (Ошибка исправлена и еще и скролиинг заработал )



Увеличить ...
Зы
В IE8 есть проблемы с отображением полилинии но это мелочь и я надеюсь что и её можно профиксить ...
---------------------------------------------------------------------------------------------
Чтобы не засорять форум буду просто тихо заменять версии в последнем посте
(Мне нетрудно, да и от версии к версии программа только улучшается... но эта ветка разработки близится
к завершению, так что не пугаетесь! Думаю что "бурный поток обновлений" скоро прекратится ... )

24-04-2016 ...


Увеличить ...


В это версии наконец появилась возможность редактировать любой элемент в "списке команд" .
Причем более менее в удобной форме .
(Можно редактировать команды напрямую, а можно через список параметров... отображение "двунаправленное" то есть редактируешь список меняется команда и наоборот... )
+Исправлено не сколько неявных ошибок в скриптах .

Чтобы список активировался нужно кликнуть в заголовок "Список команд" на панельке ...

25-04-2016



Добавил выбор элемента по клику на его отображение на рабочем поле ...
(То есть: Нарисовал эллипс - >кликнул по нему -> сразу видно выбор в списке команд -> кликнул в команду и отредактировал например цвет ... )
Извиняюсь за кривой readmy.txt в паре предыдущих версий просто не доглядел при сборке бин-версии ...


Решение проблемы выбора "неизвестно_заранее_чего_и_где" решилась довольно просто - в фоновом режиме рисую в все фигуры списка по очереди на чистом битмаре и проверяю что находится в под курсором ... Если это не фон значит попал в фигуру ...
наложения не существенны потому, что в результате остается последнее "несовпадение с фоном" .

13-05-2016


Увеличить...

Добавил глобальные "Настройки редактора" (Не все ... но главные уже работают ! Уже есть настройки списка элементов и их групп без прямого редактирования INI-файла ... + настройки пути для внешнего браузера и пути папки для скриптов... Вроде ерунда но программа сразу стала смотреться чуть иначе ! )



Субота 14-е...
Упс ! Вчера в сборку влезла очень досадная но легко исправляемая ошибка ...
Исправлено !
------------
08-09-2016



Настройки редактора (много и разные)+
Прибиты баги +
Добавлена буферизация прорисовки +
"Невозможные" как заявляли на некоторых форумах настройки цвета стандартного главного меню +
(В архиве кажется стандартная палитра но все настраивается как вам будет угодно .)
Скрипты теперь в отдельной папке SCR (не забывайте ее распаковывать !)

Добавил полезное дополнение :
Выбранные мышкой элементы можно без бубна редактировать в "инспекторе элементов"
и даже двигать стрелками ...(Раньше можно было редактировать (в ИЭ) только последний элемент
все прочие редактировались через табличку при нажатии на команду в списке а двигать стрелками произвольный элемент вообще элемент было вообще невозможно )

Добавил галку "Стандартные цвета меню " в настройки цветов ( Все-же приемчик установки цветов малость "читерский" так что на всякий случай сделал блокировку )

----------------------------------------------------------------

Очередная доработка : в настройках заработала закладка "Скрипты" пока просто для "учета-контроля" скриптов и мелких правок не выходя из программы ... Но дальше думаю чуть модифицировать редактор скриптов и сделать что-то вроде iDE для удобства их разработки и отладки

FR0004_20_5_35bin.ZIP
================================================


Сборка от 28-09-2016

И так модификация "редактор скриптов" FR_SEdit для нужд "Редактора форм и страниц" ( официальное название form_red -а в другом пакете ) началась !(FR_SEdit входит в пакет на правах вспомогательной утилиты) ..пока все косо и пахнет свежей "рыбой" но как минимум лучше "Блокнота" ...

FR0004_20_5_38_bin.7z

"Багофичи" редактора скриптов
1 Переменные в принципе работают но ни загрузки ни сохранения их списка нет, поэтому я по умолчанию задвинул панель "под плинтус" .

2 Библиотека встроенных функций пока мало совпадает с теми что используются в form_red ... Так что тестовой запуск работает только в самых примитивных скриптах ...

3 Сохранение только в "ручном" режиме (но возможно что так пока и лучше - меньше шансов все испортить скрипт ...)

Как уже говорил единственное достоинство FR_SEdit пока в "превосходстве" над простейшим блокнотом но это только "первая альфа" так что "все еще будет" !



======================================

сборка от 05-10-2016 ср (FR0004_20_5_40)
Добавил
Панель НАСТРОЙКИ ПРОГРАММЫ->Cкрипты-> Кнопки
1 Автозаполнение списка скриптов из папки
(Даже комментарии автоматически добавляет! )
Вид панели настройки

2 Очистка списка
+Поправил кодировку скриптов (теперь все ANSI(CP1251))

сборка от 07-10-2016 пт (FR0004_20_5_41)
Панель НАСТРОЙКИ ПРОГРАММЫ->Cкрипты
Исправил открытие/создание нового скрипта +
Мелкие полезности в редакторе скриптов
Показывает имя загруженного файла +
Кнопка разворота списка переменных +

FR0004_20_5_41
+ Еще и сегодняшние мелкие правки проверки на модификацию при записи редакторе скриптов .

Редактировалось 27 раз(а), последний 2016-10-08 22:44:39
карма: 0

0
Ответов: 963
Рейтинг: 12
#15: 2016-10-08 22:20:09 ЛС | профиль | цитата
Новые технологии на марше !

"Ускорение и перестройка" при перерисовке ...
(Умная буферизация через метафайлы) +
Элемент "Таблица" +
Чуть изменил работу с "Инспектором Элементов" +

FR0004_20_5_43 (Обнаружил целый вагон ошибок ссылку убираю )
==========================================

"Нормальное обновление. "
( Ну хочется верить, что на этот раз все будет нормально ... )

Сборка от 21-10-2016 FR0004_20_5_44_bin
Чистка кода +
Существенное ускорение скроллинга +
Опять влезшая в очистку по пункту меню "Новая схема" ошибка исправлена +

==============================================
Сборка от 24.10.2016
FR0004_20_5_45_bin
==============================================
Добавил удаление текущего элемента (по кнопке DEL) +
(Ундо пока игнорирует любой прямой доступ к списку но это точно скоро исправлю ....)
Добавил закладку для ИЭ и списка команд +
(Пока чуть топорно (Возился с поворотом надписи плюнул намалевал картинку))
Убрал создание лишнего буфера из прорисовки +
Зы
Качестве примера теперь можно загружать файл Les1.lst
*(содержит больше ста элементов )

Давно не кидал сюда скрины так что сразу два...

Тут видно работу закладки и результат дизайна в браузере


А тут показана отладка скриптов в "спец редакторе "...

-------------------------------------------------------------
31-10-2016
Мелкие полезности .
-----------------------------------------------------------
Вернул СкролБокс на панель элементов +
Исправил проблемы с фокусом +
(Перед рисованием принудительно перевожу фокус на скролбар)

Блокировал кнопку таб при режиме рисования +

01-11-2016 вт
Не большое но важное дополнение в редакторе скриптов:
Теперь при ошибке пробного пуска скрипта программа выдает подробную информацию об ошибке . (Причем как при компиляции так и при ошибках исполнения )
======================================

Сборка 05-11-2016 FR0004_20_5_46_4_bin.7z
--------------------------------------------------------




Преодолев лень и даже отбив немного мозгов у своей тупости добавил первые реально действующие элементы в раздел "Формы" ! (суть проблемы была в том что нужно было наладить взаимодействие формы и элементов на ней ...)
В процессе написания также были найдены и частично исправлены ошибки и недоделки в редакторе скриптов .
Пока есть только сама форма и кнопка (в прочем легко превращаемая в строку ввода простым изменением параметра ).
Но суть в том, что создан шаблон для дальнейшего добавления всех элементов формы .
Так что думаю, что на следующей неделе я добавлю почти всё что нужно .

Ps
+ Еще немного приблизится к ХайАсму ....
-----------------
Сборка от 20.12.2016 FR0004_20_5_46_7_bin.7z

Увеличить

Добавил управление "Z-порядком"
(горячие кнопки Ctrl - Up и Ctrl - Down или через главное меню ) ...

А чуть раньше добавил перемещение произвольного элемента мышкой (то есть не только при вставке нового элемента как было раньше ) ...
С этого по идее нужно было начинать делать любой визуальный редактор но из за того что
основные функции редактора в генерации HTML добрался только сейчас .


...и избавился от мерцания при движении и вставке нового элемента .
(Рисую на "теневом битмапе" и вывожу готовую картинку )

+ В разделе форм теперь уже "аж" целых 5 элементов ...

----------------------------------------------------------------------
Мдя давно я сюда обновления не кидал ...

Сборка от 07.04.2017 FR0004_20_5_47_5_bin.7z

Выделение элемента
Увеличить...
Натворил довольно много ...

+ с красивый курсор-прицел .
Курсор
+ поиск границ и определения номера элемента по клику...
+ добавил показ границ при перемещении по списку команд с помощью стрелок
(Фокус с определением границ из за необходимости оптимизации реально трудоемким оказался (Суб версий 20 наверное написал !))
Скрин работы с "тяжелым" примером ... (Les4.lst )
Увеличить...
+ доступ к текстовым файлам из скриптов (только чтение) см РиадМи
+ перемещение произвольного элемента мышкой
+ изменить размер "элемента макета"Alt + стрелки клавиатуры и мышкой
(Зажав Alt и левую кнопку мыши при выборе фигуры )
+ Запись картинки в WMF ( Сделать было нетрудно так почему бы и нет ?)
+ исправлена мелкая ошибка возникавшая при отсутствии указанной формы в элементах формы .
+ исправлены многие другие баги ...
Зы
Вообще-то есть не сколько более свежих сборок но они не слишком отличаются от FR0004_20_5_47_5...

Редактировалось 36 раз(а), последний 2017-07-13 16:47:44
карма: 0

0
15
Сообщение
...
Прикрепленные файлы
(файлы не залиты)