Clarion 11-12
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4820
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 10 раз
- Поблагодарили: 42 раза
Clarion 11-12
Нашелся обход проблемы. Заворачиваем строку для поиска в простой класс, объявляемый локально в процедуре фрейма. В глобальной нетредной переменной сохраняем его адрес. В дочернем окне объявляем ссылку на этот класс и локальную переменную для строки поиска. Когда на фрейме вводим строку поиска, то сохраняем в классе. При нажатии на кнопки поиска на фрейме срабатывают симметричные кнопки поиска в дочернем окне, там присваиваем локальной переменной значение из класса, а дальше как и ранее.
Несколько замороченно написано, кто не в теме механизма взаимодействия из дочерних окон с контролами на фрейме. Главное, это все в шаблоны не сложно включается, дальше все автоматом для существующих и новых оконных процедур с таблицами.
Несколько замороченно написано, кто не в теме механизма взаимодействия из дочерних окон с контролами на фрейме. Главное, это все в шаблоны не сложно включается, дальше все автоматом для существующих и новых оконных процедур с таблицами.
C6/C11, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7581
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 20 раз
- Поблагодарили: 64 раза
Clarion 11-12
А нельзя при запросе поиска сохранять строку в GlobalData и отправлять в MDI Windows уведомление (или событие) ?
Make Clarion Great Again !
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4820
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 10 раз
- Поблагодарили: 42 раза
Clarion 11-12
Не, там другая схема, по аналогии с кнопками прокрутки в таблицах, размещенными на тулбаре. Их метки доступны в дочерних окнах. Наверно, можно было бы и через событие, но это выглядит как более сложный путь.Игорь Столяров писал(а): ↑03 Сентябрь 2024, 20:20А нельзя при запросе поиска сохранять строку в GlobalData и отправлять в MDI Windows уведомление (или событие) ?
C6/C11, ШВС, tps/btrieve.
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4820
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 10 раз
- Поблагодарили: 42 раза
Clarion 11-12
Что-то у меня на рантайме с11 постоянно дергается фрейм, когда нажимаю какую-нибудь кнопку, закладку или заголовок в окне с toolbox. Обращал кто внимание? В с6 ничего не дергается...
C6/C11, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7581
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 20 раз
- Поблагодарили: 64 раза
Clarion 11-12
Возможно медленно прорисовывается ?
Если только C11 - проверить Microsoft Framework, у него такие захиды бывают
при обновлени версии. Установить все обновления Windows и перезагрузить.
Make Clarion Great Again !
- Игорь Столяров
- Ветеран движения
- Сообщения: 7581
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 20 раз
- Поблагодарили: 64 раза
Clarion 11-12
Ну здесь то всё просто - тупо перерисовываются ToolBar. Про то как было при C6 услышал и знаю.
Я эту тему давно поднимал: viewtopic.php?p=48014&hilit=toolbar#p48014
Нужно выкашивать все ископаемые VCR контролы c ToolBar и убирать Immediate & EntryPatern с AppFrame.
Make Clarion Great Again !
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4820
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 10 раз
- Поблагодарили: 42 раза
Clarion 11-12
Речь не про toolbar, тут как раз не дергается. У Вас есть окно с toolbox, откройте его и щелкните мышкой по заголовку, увидите, как передернулся весь фрейм. Поскольку у Вас на окне с toolbox (не путаем с toolbar) только кнопки для запуска других окон, то после нажатия на кнопку дергание фрейма есть, но оно меньше бросается в глаза, так как открывается новое окно. Если сделаете на том же окне с toolbox кнопку, которая ничего не запускает, то увидите, как при нажатии фрейм начинает дергаться, как при щелчке на заголовок этого окна.
C6/C11, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7581
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 20 раз
- Поблагодарили: 64 раза
Clarion 11-12
Есть такое ... логично предположить, что в AppFrame посылается какой-то Event (вряд ли Notify) и он отрабатывается
как обновление окна. Можно попытаться поймать событие и забанить.
Make Clarion Great Again !
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4820
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 10 раз
- Поблагодарили: 42 раза
Clarion 11-12
В debugView прилетают события 517, 518. Их блокировка ничего не дает. Скорее всего, это где-то внутри accept крутится, не попадая в код приложения. А после сабклассинга много всяких кодов прилетает, как-то их вырубать стремно.
C6/C11, ШВС, tps/btrieve.
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4820
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 10 раз
- Поблагодарили: 42 раза
Clarion 11-12
Не знаю, интересно кому читать про глюки и баги рантайма с11. Поле ввода на окне с атрибутом toolbox стало недоступным. А у меня такой калькулятор с возможностью прямого ввода числа был...
В общем, собрал основной большой проект с рантаймом с11, подключил в нем в настройку несколько основных плюшек, типа включение/выключение theme для sheet, стилизацию закладок на выбор, установку цвета заголовков таблиц для "black mode" режима. Можно визуально сравнивать с версией на с6. Для наглядности включил в обоих вариантах шрифт segoe ui,10 и манифест.
На рантайме с6.
На рантайме с11.
На рантайме с11 с включенной темой sheet и стандартными закладками.
Общее впечатление, как и раньше. Хотя в приложениях с рантаймом с11 прорисовка контролов выглядит более изящно, но работать с рантаймом с11 имеет смысл, если отказываться от всяких наворотов с многооконным интерфейсом и переходить к простой схеме меню - таблица - форма. Иначе шаг в сторону, наступаешь на то, что не протестировано. Поэтому очередные пару дней разбирательств с с11 закончились тем же. Основные приложения на рантайме с6, а дополнительные с использованием anyscreen на рантайме с11.
В общем, собрал основной большой проект с рантаймом с11, подключил в нем в настройку несколько основных плюшек, типа включение/выключение theme для sheet, стилизацию закладок на выбор, установку цвета заголовков таблиц для "black mode" режима. Можно визуально сравнивать с версией на с6. Для наглядности включил в обоих вариантах шрифт segoe ui,10 и манифест.
На рантайме с6.
На рантайме с11.
На рантайме с11 с включенной темой sheet и стандартными закладками.
Общее впечатление, как и раньше. Хотя в приложениях с рантаймом с11 прорисовка контролов выглядит более изящно, но работать с рантаймом с11 имеет смысл, если отказываться от всяких наворотов с многооконным интерфейсом и переходить к простой схеме меню - таблица - форма. Иначе шаг в сторону, наступаешь на то, что не протестировано. Поэтому очередные пару дней разбирательств с с11 закончились тем же. Основные приложения на рантайме с6, а дополнительные с использованием anyscreen на рантайме с11.
C6/C11, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7581
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 20 раз
- Поблагодарили: 64 раза
Clarion 11-12
Мне интересно. Но для обсуждения, конечно, хотелось бы увидеть примеры с демонстрацией проблем.
Я не настаиваю, но поймите, что я могу легко наставить в папку Template 20-летнего г-на и программа вообще не запустится.
Мои субъективные впечатления, что С6 и C11 - это вообще разные системы с похожим языком и кое-как совместимыми
проектами. Т.е. они разные. Мы прошли долгий путь переноса кода, иногда в ущерб функционалу, иногда искали замену.
С зависаними предпросмотра для отчётов с MDI окнами запросов разбирались 2 года. И таких примеров много.
Если нет каких-то непреодолимых причин, то возможно оптимальный вариант - это оставить старые проекты на RunTime 6.3
Я согласен с тем, что сложные интерфейсные конструкции, нестандартные окна и т.д. - нужно переписывать заново на C11.
Make Clarion Great Again !
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4820
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 10 раз
- Поблагодарили: 42 раза
Clarion 11-12
Мне лень дополнительно тестировать вопрос с недоступностью entry поля на окне с toolbox атрибутом. Это можете легко воспроизвести у себя, какие еще примеры нужны? Может, у Вас будет работать, тогда я удивлюсь и попробую поискать причину у себя, хотя там вроде как все тривиально.
На самом деле, рантаймы с6 и с11 не так сильно отличаются. Переделки (с поломками) были в нестандартных для винды контролах и в многопоточной модели. RZ как-то обмолвился, что его напрягает поддерживать mdi интерфейс. Что-то мне кажется, что переделки в стабильно работавшем в с6 mdi были связаны с какими-то проблемами иcпользования activeX.
Возможно, отпечаток наложило то, что Вы переходили на более ранние версии после с6, в которых багов было еще больше. Например, я не увидел проблем с размещением в броузе полей из массивов, про которые упоминалось, или с дерганием контролов на тулбаре.
На самом деле, рантаймы с6 и с11 не так сильно отличаются. Переделки (с поломками) были в нестандартных для винды контролах и в многопоточной модели. RZ как-то обмолвился, что его напрягает поддерживать mdi интерфейс. Что-то мне кажется, что переделки в стабильно работавшем в с6 mdi были связаны с какими-то проблемами иcпользования activeX.
Возможно, отпечаток наложило то, что Вы переходили на более ранние версии после с6, в которых багов было еще больше. Например, я не увидел проблем с размещением в броузе полей из массивов, про которые упоминалось, или с дерганием контролов на тулбаре.
C6/C11, ШВС, tps/btrieve.
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4820
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 10 раз
- Поблагодарили: 42 раза
Clarion 11-12
Без тулбоксов особых проблем с рантаймом с11 пока не замечено. Поле ввода на тулбаре иногда подглючивает - если очень быстро закрывать несколько окон подряд, то после закрытия последнего последнее введенное значение пропадает и появляется при открытии нового окна. Это не часто, только когда очень быстро делать закрытия. Я так понял, что связано с механизмом управления глоболами, так как метка у строки поиска имеет глобальный номер, по аналогии с другими контролами управления mdi окнами на тулбаре.
Из замеченных мелочей. Про это уже писали, если память не изменяет. В коде вида
В рантайме с6 выполнится код в обоих of 1, а в рантайме с11 только в первом.
Еще фича, если строковое поле на экране имеет дефолтную длину и изначально пустое значение, то после присвоения значения в рантайме с11 оно не отображается, в рантайме с6 отображается. В принципе, дефольных значений высоты и ширины контролов лучше не использовать совсем, так как такие контролы некорректно масштабируются anyfont при изменении размеров шрифта.
Ради интереса попробовал воспроизвести на рантайме с6 оформление в стиле win10, как на рантайме с11.
1. Включаем манифест.
2. Устанавливаем шрифт в окнах на segue ui, 10.
3. Устанавливаем flat у полей ввода и list.
4. У кнопок (кроме маленьких с одной пиктограммой) снимаем признак flat (у меня он по умолчанию включен).
5. Активную закладку sheet красим в белый, остальные в оттенок серого.
На мое восприятие, получилось достаточно близко. Вместо обведения синий каемкой текущего поля ввода подчеркивание в стиле win11, отличается прорисовка sheet, она несколько толще, чем в с11, атрибут flat не предумотрен.
Из замеченных мелочей. Про это уже писали, если память не изменяет. В коде вида
Код: Выделить всё
case myper
of 1
...
of 2
...
of 1
...
Еще фича, если строковое поле на экране имеет дефолтную длину и изначально пустое значение, то после присвоения значения в рантайме с11 оно не отображается, в рантайме с6 отображается. В принципе, дефольных значений высоты и ширины контролов лучше не использовать совсем, так как такие контролы некорректно масштабируются anyfont при изменении размеров шрифта.
Ради интереса попробовал воспроизвести на рантайме с6 оформление в стиле win10, как на рантайме с11.
1. Включаем манифест.
2. Устанавливаем шрифт в окнах на segue ui, 10.
3. Устанавливаем flat у полей ввода и list.
4. У кнопок (кроме маленьких с одной пиктограммой) снимаем признак flat (у меня он по умолчанию включен).
5. Активную закладку sheet красим в белый, остальные в оттенок серого.
На мое восприятие, получилось достаточно близко. Вместо обведения синий каемкой текущего поля ввода подчеркивание в стиле win11, отличается прорисовка sheet, она несколько толще, чем в с11, атрибут flat не предумотрен.
C6/C11, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7581
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 20 раз
- Поблагодарили: 64 раза