Уважаемый Владимир Даниелович!
Владимир Паронджанов писал(а):
Эти три квадратика исчезают в конце работы? Их можно удалить?
Или их удалить нельзя и они обязательно присутствуют в полностью законченной схеме?
Не исчезают, и при экспорте в графический файл остаются. Видимо, остаются и в законченной схеме тоже.
Владимир Паронджанов писал(а):
Выскажите Ваше мнение: эти квадратики полезны или нет? Что именно они улучшают? Или они вносят неудобства для пользователей?
Они показывают пользователю заполнено ли соответствующее поле у иконы. По большому счёту, мне хватило бы одного такого поля, а следовательно и квадратика. Поскольку консенсуса в количестве полей/квадратиков достичь может быть проблематично, было-бы неплохо для каждой ДРАКОН-схемы сохранять соответствующее количество булевских параметров, указывающих на присутствие этих полей. И если параметр установлен в ЛОЖЬ не показывать соответствущий квадратик и не предоставлять возможности редатировать соответствующее поле.
И ещё важное замечание: возможность редактирования текстовых полей хорошо-бы обеспечить
ВСЕГДА, а не включать её из меню. И при щелчке на иконе отображать элементы редактирования для
ВСЕХ текстовых полей, в том числе и для текста иконы.
Отображение квадратиков сделать включаемым/отключаемым через меню.
Владимир Паронджанов писал(а):
Что значит открыть файловый формат редактора?
Это значит открыть исходники для всех пользователей?
ОТКРЫТЬ ИСХОДНИКИ это ещё не значит
ОТКРЫТЬ ВСЕ ИСХОДНИКИ, и с таким условием их вполне можно открыть для
ВСЕХ Поскольку я изучал исходники Геннадия, могу порекомендовать, как это можно сделать.
В программе (согласно самой первой версии) присутствуют две основные структурные единицы. Класс Схема, и класс Элемент. Ещё присутствуют два списка, для экземпляров типа Схема и экземпляров типа Элемент соответственно.
Всё что нужно сделать:
1. Выделить списки и эти 2 класса в отдельный модуль (назовём его условно БАЗОВЫЙ), убрав из них все методы не нужные для чтения/записи. Останутся только поля классов, и конструктор с деструктором для правильного создания экземпляров классов и освобождения памяти.
2. Перенести в БАЗОВЫЙ модуль также и процедуры чтения/записи файлов.
3. В программе добавить БАЗОВЫЙ модуль в секцию uses, и описать два класса-потомка для тех базовых классов с расширением необходимой функциональности. И для чтения/записи использовать процедуры определённые в БАЗОВОМ модуле.
4. Опубликовать БАЗОВЫЙ модуль для ВСЕХ пользователей.
PS. Даже более того! Сообщество сможет дописать в БАЗОВОМ модуле процедуры чтения/записи для альтернативных форматов, например XML.