Альтернативный preview для оконного дизайнера Clarion11
Добавлено: 07 Октябрь 2022, 16:00
Известная проблема - предпросмотр в оконном дизайнере выдает ошибку на сложных окнах. Поскольку SV с большой долей вероятности уже не в бизнесе, посмотрел, можно ли как-то решить самостоятельно. Такой вариант выглядит рабочим. Сделал классик. Один метод считывает декларацию окна из буфера обмена, парсит ее и сохраняет результат в кьюшке. Второй метод по содержимому кьюшки динамически создает контролы в окне.
Тестовое окно в дизайнере С11 для примера.
Закрываем с сохранением изменений, щелкаем по кнопке "..." справа от кнопки Window в пропертях процедуры, далее Ctrl+A и Ctrl+C. Декларация окна копируется в буфер обмена винды.
Переключаемся в свое приложение и нажимаем кнопку "Предпросмотр". Видим содержимое исходного окна.
Класс пока охватывает наиболее часть встречающиеся виды контролов и пропертей. Довести до полного охвата требует какое-то время, уже чисто дело техники.
По аналогичной схеме можно сделать альтернативный дизайнер окон наподобии того, что есть в clarion6. То есть, копируем, как описано выше, в буфер обмена, открываем свой дизайнер (как примере открывается окно preview), редактируем, сохраняем в буфере обмена, вставляем в среде Clarion. Пока не совсем понятно, насколько будет практическая отдача. С другой стороны, разработка сложных комплексных окон в штатном дизайнере C11 довольно трудоемка.
Сейчас в упомянутом классе сразу из другого проекта перенесен базовый функционал для выделения, перемещения, ресайза, выравнивания контролов и т.п. Совсем заместить штатный дизайнер окон не получится, так как контрол шаблоны придется в любом случае создавать в нем, чтобы присвоились seq. Можно было бы в альтернативном дизайнере, в случае сложных окон, управлять размещением контролов, изменять их свойства, а также добавлять обычные контролы, не связанные с контрол шаблонами. Насколько фантазии хватит.
Тестовое окно в дизайнере С11 для примера.
Закрываем с сохранением изменений, щелкаем по кнопке "..." справа от кнопки Window в пропертях процедуры, далее Ctrl+A и Ctrl+C. Декларация окна копируется в буфер обмена винды.
Переключаемся в свое приложение и нажимаем кнопку "Предпросмотр". Видим содержимое исходного окна.
Класс пока охватывает наиболее часть встречающиеся виды контролов и пропертей. Довести до полного охвата требует какое-то время, уже чисто дело техники.
По аналогичной схеме можно сделать альтернативный дизайнер окон наподобии того, что есть в clarion6. То есть, копируем, как описано выше, в буфер обмена, открываем свой дизайнер (как примере открывается окно preview), редактируем, сохраняем в буфере обмена, вставляем в среде Clarion. Пока не совсем понятно, насколько будет практическая отдача. С другой стороны, разработка сложных комплексных окон в штатном дизайнере C11 довольно трудоемка.
Сейчас в упомянутом классе сразу из другого проекта перенесен базовый функционал для выделения, перемещения, ресайза, выравнивания контролов и т.п. Совсем заместить штатный дизайнер окон не получится, так как контрол шаблоны придется в любом случае создавать в нем, чтобы присвоились seq. Можно было бы в альтернативном дизайнере, в случае сложных окон, управлять размещением контролов, изменять их свойства, а также добавлять обычные контролы, не связанные с контрол шаблонами. Насколько фантазии хватит.