:: Visual Foxpro, Foxpro for DOS
адаптация программы под бОльшее расширение монитора
AlexSSS
Автор

Сообщений: 6113
Откуда: Tallinn, Estonia
Дата регистрации: 19.09.2005
Есть куча программ, разработанных под расширение дисплея 800*600 и 1024*768
Основной шрифт Arial, 9
AllForms.ScaleMode = 3 (Pixels)
В результате на обоих расширениях все прекрасно читается и проблем не было.

Сейчас начали приобретать ЖКИ мониторы, стандартное расширение 1200*1024
Все формы становятся мелкими и плохочитаемыми

Проограммы надо адаптировать, чтобы нормально работали под произвольными расширениями, начиная с 800*600

Как это можно реализовать c минимальными затратами времени?

Предполагаю, что надо перейти на AllForms.ScaleMode = 0
Раньше с ним не работал, попробовал на работающей форме просто переставить ScaleMode - жуть, все поназалазило друг на друга, особенно обьекты с контейнерами

PS. Resize не интересует



Отредактировано (04.11.05 10:00)


------------------
Чудес не бывает, бывают кривые руки
Ratings: 0 negative/0 positive
Re: адаптация программы под бОльшее расширение монитора
Penner

Сообщений: 4102
Откуда: Muenster
Дата регистрации: 26.04.2002
AlexSSS
PS. Resize не интересует
тогда пиши новые формы
Ratings: 0 negative/0 positive
Re: адаптация программы под бОльшее расширение монитора
AlexSSS
Автор

Сообщений: 6113
Откуда: Tallinn, Estonia
Дата регистрации: 19.09.2005
> тогда пиши новые формы
под каждое расширение свою форму?

Возможно я неправильно высказался про Resize
не интересует возможность руками растягивать форму.

хотя вариант прописать ресайз для всех обьектов и
в INIT в зависимости от разрешения дисплея увеличивать форму на заданный коэффициент
в INIT в зависимости от разрешения дисплея перепрописывать размер всех шрифтов

может оказаться вполне рабочим

как вообще идеалогически правильно писать формы под произвольные расширения?
Причем, чтобы в будущем они нормально работали под новыми большими разрешениями. Уже видел ноутбук с wide монитором 1800*1200



Отредактировано (04.11.05 11:15)


------------------
Чудес не бывает, бывают кривые руки
Ratings: 0 negative/0 positive
Re: адаптация программы под бОльшее расширение монитора
Penner

Сообщений: 4102
Откуда: Muenster
Дата регистрации: 26.04.2002
обсуждалось не раз
иди в Поиск
Ratings: 0 negative/0 positive
Re: адаптация программы под бОльшее расширение монитора
AlexSSS
Автор

Сообщений: 6113
Откуда: Tallinn, Estonia
Дата регистрации: 19.09.2005
вначале я как раз прошерстил поиск
ничего толком не нашел. Основная проблема там обычно противоположная, как засунуть прогу в 640*480



Отредактировано (04.11.05 11:23)


------------------
Чудес не бывает, бывают кривые руки
Ratings: 0 negative/0 positive
Re: адаптация программы под бОльшее расширение монитора
OlegP

Сообщений: 37
Дата регистрации: 15.03.2004
Форма создается под какое-то базовое разрешение монитора, допустим 600*800.
При переходе на большее разрешение в Init размеры увеличиваются на коэффициент и подбирается соответствующий размер шрифтов - это достаточно просто. Для некоторых клиентов с хорошим зрением увеличение и не требуется, им и так все видно.
Переход на меньшее разрешение достаточно проблематичен и ,как правило,требует
переделывать форму.
В свое время лучше я ничего придумать не смог и остановился на таком варианте.
Ratings: 0 negative/0 positive
Re: адаптация программы под бОльшее расширение монитора
Penner

Сообщений: 4102
Откуда: Muenster
Дата регистрации: 26.04.2002
а в Решенияз смотрел?
Ratings: 0 negative/0 positive
Re: адаптация программы под бОльшее расширение монитора
AlexSSS
Автор

Сообщений: 6113
Откуда: Tallinn, Estonia
Дата регистрации: 19.09.2005
> а в Решенияз смотрел?
Ааа, Семен Семеныч! ;o)
спасибо, посмотрю
Ratings: 0 negative/0 positive
Re: адаптация программы под бОльшее расширение монитора
Penner

Сообщений: 4102
Откуда: Muenster
Дата регистрации: 26.04.2002
Если дальше будешь спрашивать тут, укажи версию фокса
Ratings: 0 negative/0 positive
Re: адаптация программы под бОльшее расширение монитора
AlexSSS
Автор

Сообщений: 6113
Откуда: Tallinn, Estonia
Дата регистрации: 19.09.2005
VFP9
а спрашивать еще точно буду ;o)

то, что пока нашел, это разные ресайзы
свой ресайз у меня был еще в VFP7
сейчас Anchor

но это напрямую не подходит, надо изменять и размер шрифта.
Размер шрифта обьектах должен несколько узменять высоту.
По отдельности вроде все понимаю, но как все это обьединить - чего-то не пойму.
Ratings: 0 negative/0 positive
Re: адаптация программы под бОльшее расширение монитора
Penner

Сообщений: 4102
Откуда: Muenster
Дата регистрации: 26.04.2002
в решениях был вариант и с шрифтами
Ratings: 0 negative/0 positive
Re: адаптация программы под бОльшее расширение монитора
AlexSSS
Автор

Сообщений: 6113
Откуда: Tallinn, Estonia
Дата регистрации: 19.09.2005
> в решениях был вариант и с шрифтами
вариант Е.В.Белюковой
у меня сразу не пошел, скорее всего из-за накладок с кучей своих классов

у меня складывается ощущение, что гораздо быстрее и надежнее написать свое собственное решение, чем разбираться с чужим + потом еще его адаптировать под свои проекты.
Поэтому меня больше интересуют даже не конкретные решения, а принципы, на которых они построены

Вариант Белюковой обязательно поразбираю потом поподробнее, судя по отзывам, это одно из наиболее удачных решений
Ratings: 0 negative/0 positive
Re: адаптация программы под бОльшее расширение монитора
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
посмтори там forum.foxclub.ru может подойдет




------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: адаптация программы под бОльшее расширение монитора
AlexSSS
Автор

Сообщений: 6113
Откуда: Tallinn, Estonia
Дата регистрации: 19.09.2005
2 piva
спасибо, посмотрю на выходных повнимательнее.

Сейчас кажется перспективным такой вариант
1. используется существующая форма, за редким исключением используется Arial, 9 (это что уже есть)
2. на все обьекты назначается relative anchor на все четыре стороны
3. на все обьекты назначается шрифт произвольной величины (10,11,12,13,14) и одновременно с эти по высчитанным коэффициентам увеличивается размер формы. Все обьекты при этом по относительным привязкам (relative anchor) увеличивают свой размер.

это будет использоваться для изменения размера формы, контролов и размера шрифта. Если необходимо, чтобы потом работал ресайз выполненный через Anchor, то
1. запоминаются установленный Anchor, меняется размер шрифта и Anchor
2. Меняется размер формы
3. Восстанавливается первоначальный Anchor, выставленный для ресайза



Отредактировано (04.11.05 13:46)


------------------
Чудес не бывает, бывают кривые руки
Ratings: 0 negative/0 positive
Re: адаптация программы под бОльшее расширение монитора
AlexSSS
Автор

Сообщений: 6113
Откуда: Tallinn, Estonia
Дата регистрации: 19.09.2005
проверил свой вариант - работает совершенно великолепно. Для проверки использовал достаточно сложную форму (grid, pageframe c 5-ми закладками, на каждой по паре десятков обьектов, включая контейнеры). Мало того, что все нормально работает, при этом и внешний вид не страдает.

В качестве коэффициентов для изменения размера формы использовал отношение FONTMETRIC(6) и FONTMETRIC(1) существующего шрифта формы к размеру устанавливаемого фонта.

Полученный класс не требует вмешательства в код существующей программы, достаточно просто его бросить на форму

Доведу класс до ума, опубликую и здесь для проверки
Ratings: 0 negative/0 positive
Re: адаптация программы под бОльшее расширение монитора
AlexSSS
Автор

Сообщений: 6113
Откуда: Tallinn, Estonia
Дата регистрации: 19.09.2005
спасибо всем принявшим обсуждение в этом топике. Это реально помогло мне в поиске решения своей проблемы.
На этом ветку можно считать закрытой, обсуждение полученного решения переношу в новую ветку
forum.foxclub.ru



Отредактировано (07.11.05 09:59)


------------------
Чудес не бывает, бывают кривые руки
Ratings: 0 negative/0 positive
Re: адаптация программы под бОльшее расширение монитора
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi AlexSSS!

Вообще-то в винде есть специальная настройка - задаётся DPI для монитора - и
тогда во всех программах шрифты пропорционально увеличатся - т.е. тот-же
Arial 9 будет в пикселях занимать больше (или меньше - тут уж как настроить)
места. И тогда тебе останется только заняться "компенсированием" этой
настройки - т.е. соответственно её менять размеры контролов (а сам размер
шрифта не трогать). По умолчанию DPI=96.
Также неплохой вариант - это считать текущие настройки темы винды (там есть
несколько интересных элементов) и поменять размеры шрифтов согласно тем
настройкам.
IMHO это будет наиболее правильное и соответствующее духу винды решение.




------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: адаптация программы под бОльшее расширение монитора
AlexSSS
Автор

Сообщений: 6113
Откуда: Tallinn, Estonia
Дата регистрации: 19.09.2005
2 Igor Korolyov
про DPI знаю. Тоже был уверен, что работает, как ты описываешь
ставлю 120 DPI вместо 96, перегружаюсь. Все замечательно увеличилось. За исключением фоксовских форм - они остались такими же. как и были. Везде используется стандартный Arial, 9
в чем дело, так и не понял. Проверял на двух WinXP и одном Win98

> Также неплохой вариант - это считать текущие настройки темы винды
> (там есть несколько интересных элементов) и поменять размеры
> шрифтов согласно тем настройкам.
Сейчас как раз работаю над вариантом, который позволит, в том числе, и устанавливать произвольный шрифт для форм. Просто заменить шрифты - не проблема, проблема правильно отмасштабировать форму под эти шрифты.
Ratings: 0 negative/0 positive
Re: адаптация программы под бОльшее расширение монитора
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi AlexSSS!

Формы как и прочие контролы КОНЕЧНО не должны менять свои размеры при смене
этой настройки! Она ТОЛЬКО на шрифты распространяется - т.е. делает Arial,9
визуально большим (при этом если не стоит AutoSize = .T. то надпись вполне
может обрезаться!). Вот твоя задача и состоит в том чтобы позиции/размеры
контролов скоординировать с новыми размерами "текстов".
Насчёт "своей" установки шрифтов для форм - можно конечно и так, но можно и
из текущей темы виндов вынуть инфу о шрифтах. От задачи зависит, от принятых
подходов к созданию UI - если ты стремишься следовать стилю винды - то и
цвета, и шрифты и прочие параметры стоит брать из самой винды - иначе
конечно придётся делать свои диалоги настройки...




------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: адаптация программы под бОльшее расширение монитора
AlexSSS
Автор

Сообщений: 6113
Откуда: Tallinn, Estonia
Дата регистрации: 19.09.2005
> Насчёт "своей" установки шрифтов для форм - можно конечно и так,
> но можно и из текущей темы виндов вынуть инфу о шрифтах.
вначале сделаю масштабирование формы под произвольный шрифт, а откуда его взять, из стиля винды или назначить свой - это уже дело второе.

> иначе конечно придётся делать свои диалоги настройки...
пока хватает заранее установленных предустановок. Более того, это застраховывает программу от дебильных настроек десктопа некоторых пользователей. И я уверен, что, что бы пользователь не поставил, прога будет выглядеть так, как я ее задал ;o)

Впрочем, соглашусь, что это расходится с идеалогией винды ;o)



Отредактировано (07.11.05 21:01)


------------------
Чудес не бывает, бывают кривые руки
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 27 (Гостей: 27)

© 2000-2024 Fox Club 
Яндекс.Метрика