Альтернативный preview для оконного дизайнера Clarion11

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4615
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

Альтернативный preview для оконного дизайнера Clarion11

Сообщение finsoftrz »

Известная проблема - предпросмотр в оконном дизайнере выдает ошибку на сложных окнах. Поскольку SV с большой долей вероятности уже не в бизнесе, посмотрел, можно ли как-то решить самостоятельно. Такой вариант выглядит рабочим. Сделал классик. Один метод считывает декларацию окна из буфера обмена, парсит ее и сохраняет результат в кьюшке. Второй метод по содержимому кьюшки динамически создает контролы в окне.

Тестовое окно в дизайнере С11 для примера.

prev1.jpg

Закрываем с сохранением изменений, щелкаем по кнопке "..." справа от кнопки Window в пропертях процедуры, далее Ctrl+A и Ctrl+C. Декларация окна копируется в буфер обмена винды.

prev2.jpg

Переключаемся в свое приложение и нажимаем кнопку "Предпросмотр". Видим содержимое исходного окна.

prev3.jpg

Класс пока охватывает наиболее часть встречающиеся виды контролов и пропертей. Довести до полного охвата требует какое-то время, уже чисто дело техники.
По аналогичной схеме можно сделать альтернативный дизайнер окон наподобии того, что есть в clarion6. То есть, копируем, как описано выше, в буфер обмена, открываем свой дизайнер (как примере открывается окно preview), редактируем, сохраняем в буфере обмена, вставляем в среде Clarion. Пока не совсем понятно, насколько будет практическая отдача. С другой стороны, разработка сложных комплексных окон в штатном дизайнере C11 довольно трудоемка.
Сейчас в упомянутом классе сразу из другого проекта перенесен базовый функционал для выделения, перемещения, ресайза, выравнивания контролов и т.п. Совсем заместить штатный дизайнер окон не получится, так как контрол шаблоны придется в любом случае создавать в нем, чтобы присвоились seq. Можно было бы в альтернативном дизайнере, в случае сложных окон, управлять размещением контролов, изменять их свойства, а также добавлять обычные контролы, не связанные с контрол шаблонами. Насколько фантазии хватит.
C6/C11, ШВС, tps/btrieve.
kreator
✯ Ветеран ✯
Сообщения: 4982
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз

Альтернативный preview для оконного дизайнера Clarion11

Сообщение kreator »

Наверно, дело хорошее. Но вот последний билд (как ни странно) всё запускает. Даже сложное окно с 20+ закладками.
We are hard at work… for you. :)
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4615
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

Альтернативный preview для оконного дизайнера Clarion11

Сообщение finsoftrz »

Не знаю, правильно ли я понял, проблема с превью в с11 часто вылезает в окнах, перенесенных из с6. Был случай, когда у меня превью выдавал ошибку, я подвигал клавишами разные контролы, превью заработал. То есть, было как-то связано с погрешностью пересчета координат из win32 в .net.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4615
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

Альтернативный preview для оконного дизайнера Clarion11

Сообщение finsoftrz »

Покатал еще превьювер на самых сложных окнах, вроде как работает. Например, вот окно в форматере c11, пришедшее из c6, на которое штатный превью дает ошибку.

prev3.jpg

Это оно в альтернативном превьювере.

prev4.jpg

Некоторое смещение в group, которые видны на этом скриншоте, это так и должно быть, подстройка под дизайнер c11 для устранения погрешности преобразований единиц, автоматически нормализуется контрол шаблоном. Черная подсветка колонок в списке показывает колонки с установленным color (так выводится по умолчанию, смысла особо менять не видно).

Немного посмотрел еще как делается оконный дизайнер. Особых вопросов нет, основной функционал можно реализовать и протестировать за несколько дней. Если у кого есть мысли, для чего он может быть нужен, поделитесь. Пока только понятно, что проектировать окно в нем могло бы быть значительно быстрее, чем в среде с11, сравнимо с дизайнером с6. То, что скорость разработки и удобство в дизайнере с6 существенно выше (в разы), чем в дизайнере с11, сомнения не вызывает. Но вся канитель с копипастом из среды с11 и обратно вносит свои накладные расходы, мне кажется, что в большинстве случаев игра не стоит свеч. "Игрушка" выглядит так.

prev5.jpg

Есть создание контролов, выделение, масштабирование, перемещение (мышкой и клавишами), стандартный набор оперций выравнивания, интерфейс к вызову форм на установку свойств. Понятен механизм работы с sheet и tab. Есть undo/redo, выравнивание по сетке. Нет вывода окна (оно как другие контролы, только с созданием дополнительных контролов кнопок max/min, заголовка, иконки).
C6/C11, ШВС, tps/btrieve.
kreator
✯ Ветеран ✯
Сообщения: 4982
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз

Альтернативный preview для оконного дизайнера Clarion11

Сообщение kreator »

У меня проблема вылезала всегда. На любых окнах. Я грешил на Radeon. Сейчас (на новом билде) не вылезает. В любом случае, я бы сказал, причина неизвестна.
We are hard at work… for you. :)
Ответить