Интерфейсы в кларионовских приложениях

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7373
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Интерфейсы в кларионовских приложениях

Сообщение Игорь Столяров »

finsoftrz писал(а): 25 Июль 2020, 11:10 А здесь почему-то пока тянет на треп.
Ну да. А нет конкретных вопросов и тем по Clarion или программированию. :(
За теми кто отстал - не возвращаться. (С) Кодекс
gromov
Старожил
Сообщения: 263
Зарегистрирован: 11 Февраль 2009, 8:41
Откуда: г. Анапа
Поблагодарили: 3 раза

Интерфейсы в кларионовских приложениях

Сообщение gromov »

Про ресайз. Стандартный - отстой. Resizerx так и не понял, слоты какие-то ... Достойно уважения, что все реализовано на уровне шаблона. Для С6.3 покупал у Андрея Мялина ERS. Понравился, три в одном - ресайзер и сплиттеры. Но при переходе на С11 сел на одно место, т.к. Андрей сие детище продал. Пришлось ваять самому. Вроде как работает. За основу взял шаблон Андрея, класс от стандартного ресайзера, Grab стырил из VSA.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4615
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

Интерфейсы в кларионовских приложениях

Сообщение finsoftrz »

Со слотами все просто. Это пропорция. В примере был слот 1 со значением 1/2. Если мы для границы указываем слот 1, то при ресайзе она сместится на половину от изменения размера окна. Если для границы стоит стандартное значение move, то она смещается на полное изменение размера окна. Fix - не смещается.
От этого и пляшем. Например, 2 списка друг под другом, надо отресайзить одинаково. У верхнего списка верхняя граница будет fix, нижняя слот 1. То есть верхнюю оставляем на месте, нижнюю смещаем на половину изменения размера окна по вертикали. У нижнего списка верхняя граница будет слот 1, нижняя move. То есть верхнюю границу смещаем вниз наполовину, а нижнюю на полное значение изменения размера окна.
Сделаете одно окно, дальше уже все на автомате, не задумываясь.
И есть стандартные значения. Например, bottom, resize right, сместит контрол вниз на величину изменения высоты окна, левую границу оставит на месте, правую сместит по горизонтали на величину изменения ширины окна.
C6/C11, ШВС, tps/btrieve.
gromov
Старожил
Сообщения: 263
Зарегистрирован: 11 Февраль 2009, 8:41
Откуда: г. Анапа
Поблагодарили: 3 раза

Интерфейсы в кларионовских приложениях

Сообщение gromov »

Понятно, но я уже свой допилю. Кстати, нарвался еще на один глюк С11. Сделал процедуру Browse и на ней при определенных условия получал окно с состоянием регистров(((. Убираю ресайзер - все нормализуется. Нашел место, где процедура заваливается. Метод Ask (?). Сделал процедуру Window, такую же, как та, глючная. Все Ок. Что это было ?
kreator
✯ Ветеран ✯
Сообщения: 4983
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз

Интерфейсы в кларионовских приложениях

Сообщение kreator »

finsoftrz писал(а): 22 Июль 2020, 15:57 Если дословно, винда пишет, что для перезагрузки (выключения) надо выйти из программы. И предлагает либо отказаться от перезагрузки, либо перезагрузить, принудительно закрыв программу.
Я вчера не работе попробовал выключить Винду (седьмую) с работающей старой Кларионовской программой. Винда предупреждает. Но, если ничего не предпринять, Винда выходит на чёрный экран со списком запущенных программ. При нажатии на кнопку "Всё равно выключить" Клариновскую программу вырубает принудительно. Так что моя идея остаётся в силе - выключить втихую и всё.
We are hard at work… for you. :)
kreator
✯ Ветеран ✯
Сообщения: 4983
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз

Интерфейсы в кларионовских приложениях

Сообщение kreator »

finsoftrz, а чего сплиттер у Руденко такой страшненький? Обычный Region с настройками bevel?
We are hard at work… for you. :)
kreator
✯ Ветеран ✯
Сообщения: 4983
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз

Интерфейсы в кларионовских приложениях

Сообщение kreator »

По поводу ABC. Может это и религия. Но правильная! Мне до сих пор приходиться переводить в ABC из Clarion (учусь, учусь называть правильно) или просто смотреть код. Я вообще не понимаю о чём там. Зачем столько текста? У классов ABC куча методов и свойств, которые решают практически все потребности. Они решаются просто изменением свойств или вызовом определённого метода. А Кларион? Возьмите какой-нибудь Броуз. Куча каких-то рутин. Если чего не хватает - пиши свою рутину. Смотрю текст своих коллег, они так привыкли к этим рутинам! По любому поводу их пишут. Разобраться вообще не возможно. Из одной рутины вызов другой. В другой - вызов третьей. И т.д. Ещё в одном Embed пишут несколько рутин. Просто г-код!
We are hard at work… for you. :)
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4615
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

Интерфейсы в кларионовских приложениях

Сообщение finsoftrz »

kreator писал(а): 25 Июль 2020, 17:07 finsoftrz, а чего сплиттер у Руденко такой страшненький? Обычный Region с настройками bevel?
Нет, это у меня он такой страшненький. :-)
Да, обычный регион. Наверно, как-то можно приукрасить. Никогда особо этому значения не придавал. Есть идеи?
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4615
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

Интерфейсы в кларионовских приложениях

Сообщение finsoftrz »

kreator писал(а): 25 Июль 2020, 17:40 По поводу ABC. Может это и религия. Но правильная! Мне до сих пор приходиться переводить в ABC из Clarion (учусь, учусь называть правильно) или просто смотреть код. Я вообще не понимаю о чём там. Зачем столько текста? У классов ABC куча методов и свойств, которые решают практически все потребности. Они решаются просто изменением свойств или вызовом определённого метода. А Кларион? Возьмите какой-нибудь Броуз. Куча каких-то рутин. Если чего не хватает - пиши свою рутину. Смотрю текст своих коллег, они так привыкли к этим рутинам! По любому поводу их пишут. Разобраться вообще не возможно. Из одной рутины вызов другой. В другой - вызов третьей. И т.д. Ещё в одном Embed пишут несколько рутин. Просто г-код!
Это больше вопрос к Вашим коллегам, как они пишут код. Вообще, у меня принято одну рутину на один эмбед. Может быть, например, заглавная рутина, а в ней вызываться другие, чтобы сделать код максимально читабельным. Использовать рутину, вызов функции или класса, решается в зависимости от решаемой задачи.
Таки да, кода генерится много. Соответсвенно, приложения получаются более объемные. Это определенный минус. Разумеется, есть унаследованные решения от старых подходов, я уже писал, в частности, про код для добавления записей в шаблоне формы.
На другой чаше весов, всегда можно проследить, что и как работает, код максимально верифицируется компилятором, сам код работает заметно быстрее, чем код абс. Интерфейсные вещи у меня руками практически не пишутся совсем. Накрыто разными шаблонами.
В АБЦ кода меньше, но я могу с большой долей уверенности сказать, что Вы просто используете внешний интерфейс абц классов, не задаваясь вопросами, как оно внутри работает. А внутри оно может работать совсем не так, как Вы думаете. Отсюда и всякие gpf, сбои при работе с указателями, сложность разработки своих шаблонов.
У каждого свое отношение к этому. Помнится, Синявский писал по этому поводу, что ему надо пару месяцев для разработки нормальных классов вместо абц, но на это нет финансирования. То есть библиотеку классов надо было развивать, но подходить несколько иначе чем в абц. Сами СВ частично признали это, когда стали официально поддерживать вторую линейку стандартных шаблонов clarion + abc классы.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4615
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

Интерфейсы в кларионовских приложениях

Сообщение finsoftrz »

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

Интерфейсы в кларионовских приложениях

Сообщение finsoftrz »

По ресайзу такая тема. Наверно, надо ограничивать максимальный размер окон. Если интерфейс спроектирован, например, для работы на разрешениях 800х600 и 1024х768, а пользователь запустил приложение на более высоком разрешении, оставил стандартный масштаб и растянул окно, уже некрасиво получается. Раньше не задумывался над этим.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4615
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

Интерфейсы в кларионовских приложениях

Сообщение finsoftrz »

kreator писал(а): 25 Июль 2020, 17:07 finsoftrz, а чего сплиттер у Руденко такой страшненький? Обычный Region с настройками bevel?
Глянул, как у других. В 1С в частности. Они совсем не показывают region. Если навести мышку на просвет между частями сплитта, курсор меняет свою форму и видно, что можно тащить. Тоже сделал так, наверно, интуитивно понятно будет.
C6/C11, ШВС, tps/btrieve.
kreator
✯ Ветеран ✯
Сообщения: 4983
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз

Интерфейсы в кларионовских приложениях

Сообщение kreator »

finsoftrz писал(а): 25 Июль 2020, 18:37
kreator писал(а): 25 Июль 2020, 17:07 finsoftrz, а чего сплиттер у Руденко такой страшненький? Обычный Region с настройками bevel?
Нет, это у меня он такой страшненький. :-)
Да, обычный регион. Наверно, как-то можно приукрасить. Никогда особо этому значения не придавал. Есть идеи?
Лучше, действительно, скрыть. Хотя тоже не кул. Можно Image подложить. Можно даже совсем маленький, но со свойством Tiled.
А есть Resize+Splitter в одном флаконе? В качестве замены стандартного АВС-шного ресайзера.
We are hard at work… for you. :)
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

Интерфейсы в кларионовских приложениях

Сообщение RaFaeL »

Так в ресайзере Струменского есть же сплиттеры
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3133
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Интерфейсы в кларионовских приложениях

Сообщение Дед Пахом »

Не про ресайз и сплит.
Вот такой контрол может оживить унылый интерфейс, который я тут наблюдаю:
https://yadi.sk/d/RCfg4xDW8eSGNA
С уважением, ДП
Ответить