Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Работа из под терминала. Как сменить внешний вид одного и того же окна, меняя его размер и размеры объектов на нем, при этом оставляя весь его функционал? Например, программа стоит на персональном компьютере, окно 1900х1024, толщина(высота) кнопок 16. Выводим на планшет 800х600, кнопки толщина(высота) кнопок 24, плюс к этому высота строки в броузе и прочая мелочь Не говоря про мобильник...
Возможно изменение месторасположение объектов.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Мне бы тоже было бы это интересно. Пока есть только мысль отдельно обрабатывать каждый контрол по какому-то заданному алгоритму, не знаю по какому. Но я сейчас (немного имею опыт разработки под планшет) пытаюсь сделать универсальное приложение. Например, иконки должны иметь размер 48х48. При работе пальцами на планшете размер комфортный, на мониторе с Full HD тоже комфортно, хотя кнопки с такими иконками несколько крупноваты.
И ещё у меня есть в голове идея как окно комфортно повернуть при смене ориентации, скажем, планшета. Но пока до реализации не дошёл.
kreator писал(а): И ещё у меня есть в голове идея как окно комфортно повернуть при смене ориентации, скажем, планшета.
В принципе здесь можно не заморачиваться. Как-то обсуждали уже ....
Делаем все окна развернутыми на экран и стандартный Resize нормально отрабатывает поворот планшета.
Понятно, что ресайзем можно частично решить проблемы, хотелось бы чтобы пользователь указал устройство на котором работает, размеры(диагональ) и подставляется готовый скин нужных размеров, из ранее "нарисованных" , аля как в winamp.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Ну тут тогда надо идти по пути выбора каких-то фиксированных дизайнов интерфейса под разные экраны (и их размеры) ...
Если, предположим, в карточке с размером 400x200 есть 30-40 полей ввода, ну никак их не перерисуешь на размер 200x100 ...
Надо менять дизайн, разбивать окно ввода на закладки, изменять высоту выпадающих списков и т.д.
Т.е. делать какие-то разные фиксированные варианты дизайна.
Гипотетически - это конечно можно перерисовывать в динамике при открытии окна, но это страшный сон ....
gopstop2007 писал(а):Типа создание с помощью ActiveX MFC, правда не знаю пока как с помощью клариона данный продукт использовать
Сдаётся мне, это совсем не туда. Если речь о Ноянтис. Дизайн контролов поменяем. А размеры, а расположение?
Игорь Столяров писал(а):В принципе здесь можно не заморачиваться. Как-то обсуждали уже ....
Делаем все окна развернутыми на экран и стандартный Resize нормально отрабатывает поворот планшета.
Если окно очень простое, то да, всё хорошо. Но вот я сделал "форму" для планшета в книжной ориентации. Полей достаточно много, но в такой ориентации они все на экране, и экранная клавиатура не мешает. При повороте в альбомную имеем косяк, поля ушли вниз за экран. Нужен какой-то алгоритм перестроения контролов или вообще поменять концепцию "формы".
kreator писал(а):Сдаётся мне, это совсем не туда. Если речь о Ноянтис. Дизайн контролов поменяем. А размеры, а расположение?
Это контейнер управляющих элементов и какая разница где они находятся? Посмотрите на снины winamp у него все кнопки и прочий интерфейс может располагаться по разному, но функции они выполняют правильно
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
kreator писал(а): Но я сейчас (немного имею опыт разработки под планшет) пытаюсь сделать универсальное приложение.
А вот интересно, когда меняется ориентация планшета, какое событие наступает в окне?
и меняются ли местами значения App{PROP:Width} и App{PROP:Height}?
gopstop2007 писал(а):Это контейнер управляющих элементов и какая разница где они находятся? Посмотрите на снины winamp у него все кнопки и прочий интерфейс может располагаться по разному, но функции они выполняют правильно
Может Вы и правы. А какая ноянтисовская хрень конкретно?
Shur писал(а):А вот интересно, когда меняется ориентация планшета, какое событие наступает в окне?
и меняются ли местами значения App{PROP:Width} и App{PROP:Height}?
Во всяком случает событие ресайза срабатывает и, думаю, ширина и высота меняется. Но я делал без фрейма, потому что нужно было вид приложения сделать максимально приближенным к смартфонам. С фреймом не покатило, уже не помню почему, честно говоря.
kreator писал(а): С фреймом не покатило, уже не помню почему, честно говоря.
Мне тоже сам по себе APPFRAME на планшете не нужен, его можно сделать фиктивным (пустым),
только для того, что бы в нем открывать MDI окна, обрабатывать события на их запуск и т.д.
Добавил в программу следующие возможности
1. Масштабирование стандартного шрифта в настройках. Т.е. после открытия окна программа проходит по всем контролам и увеличивает/уменьшает шрифт на столько-то процентов.
2. Для всех окон введёно, по умолчанию, масштабирование контролов при масштабировании окна. Т.е. при изменении размеров окна программа проходит по всем контролам и меняет размер.
3. Введено сохранение размеров окна с выполнением масштабирования контролов при открытии окна в следующий раз
Для особо важных контролов/стилей в List введена отдельная настройка шрифтов с указанием имени шрифта и размеров.
Для некоторых окон добавлена возможность изменения размера отдельных контролов по отношению к другим (опять таки с сохранением и выполнением масштабирования при открытии окна)
Проверка на разных мониторах показала. что проблема решена, во всяком случае, жалоб, пока нет
Это я только кажусь дураком! На самом деле я полный идиот!