powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Visual FOX 6 - учет разрешения экрана
20 сообщений из 20, страница 1 из 1
Visual FOX 6 - учет разрешения экрана
    #34814674
almmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Visual FOX 6
На компьютере с разрешением 1280х1024 - форма выглядет нормально, а на компе с 1024х768
искажается.

Как сделать универсально ?

Не нашел конкретного ответа на форуме - хотя подобные вопросы встречаются.
...
Рейтинг: 0 / 0
Visual FOX 6 - учет разрешения экрана
    #34814693
MiklS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Т.Е. как искажается? не влазит в экран?
...
Рейтинг: 0 / 0
Visual FOX 6 - учет разрешения экрана
    #34814752
almmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да - не умещается -
...
Рейтинг: 0 / 0
Visual FOX 6 - учет разрешения экрана
    #34814766
Универсально - это создание формы для малого разрешения и последующее растягивание на бОльшее разрешение.
...
Рейтинг: 0 / 0
Visual FOX 6 - учет разрешения экрана
    #34814780
MiklS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если не помещаются элементы управления, то необходимо расчитывать их расположение в Resize формы. Если не помещается сама форма, то в Init нужно ещё раз програмно установить WindowState=2. Должно все поместиться. Вообще программы пишут исходя из разрешения экрана 800*600, ведь заранее не известно на каком компе она будет установлена!
...
Рейтинг: 0 / 0
Visual FOX 6 - учет разрешения экрана
    #34814782
almmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Другие варианты ?
...
Рейтинг: 0 / 0
Visual FOX 6 - учет разрешения экрана
    #34814802
MiklS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно, конечно поменять програмно разрешение экрана, но это уже совсем извращение!!!!
...
Рейтинг: 0 / 0
Visual FOX 6 - учет разрешения экрана
    #34814803
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Разрабатывать исходя из меньшего разрешения (1024х768) я под 800x600 делаю
2. Прописывать Resize() для увеличения если гриды есть на форме
3. Если надо увеличение шрифта:
Метод Form.ResizeObject()
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
lpara toObj
* Изменение размеров и шрифта объектов формы
* Ориентируемся только по полностью развернотому окну программы
* Считаем, что разработка была под 800x600 со шрифтом  9 
local lnK,loC
* gnDefaultFontSize - размер шрифта заданный в настройках программы
if type('gnDefaultFontSize') = 'N'
	lnK = gnDefaultFontSize /  9 
else
	lnK = _screen.width /  800 
endif
if pemstatus(toObj, 'Top',  5 )
	with toObj
		.top = toObj.top * lnK
		.left = toObj.left * lnK
		.height = toObj.height * lnK
		.width = toObj.Width * lnK
	endwith
endif
if pemstatus(toObj, 'FontSize',  5 )
	toObj.FontSize = round(toObj.FontSize * lnK,  0 )
endif
do case
	case pemstatus(toObj, 'Controls',  5 )
		for each loC in toObj.Controls
			this.ResizeObject(loC)
		endfor
	case pemstatus(toObj, 'Pages',  5 )
		for each loC in toObj.pages
			this.ResizeObject(loC)
		endfor
	case pemstatus(toObj, 'Buttons',  5 )
		for each loC in toObj.Buttons
			this.ResizeObject(loC)
		endfor
endcase
Запускать ThisForm.ResizeObject(ThisForm)
...
Рейтинг: 0 / 0
Visual FOX 6 - учет разрешения экрана
    #34814819
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MiklSМожно, конечно поменять програмно разрешение экрана, но это уже совсем извращение!!!! А если 15" панелька например? Тут 1024х768 без вариантов
...
Рейтинг: 0 / 0
Visual FOX 6 - учет разрешения экрана
    #34814828
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
almmagДругие варианты ? Делать отдельно форму под каждое разрешение.
...
Рейтинг: 0 / 0
Visual FOX 6 - учет разрешения экрана
    #34814844
MiklS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну это я в качестве извращения... К стати совсем забыл, ведь можно просто установить свойство формы ScrollBars=3, или 1, 2. Появятся прокрутки!!!! Тоже решение проблеммы. Вот только не помню под 6 можно ли это сделать?
...
Рейтинг: 0 / 0
Visual FOX 6 - учет разрешения экрана
    #34814875
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MiklSНу это я в качестве извращения... К стати совсем забыл, ведь можно просто установить свойство формы ScrollBars=3, или 1, 2. Появятся прокрутки!!!! Тоже решение проблеммы. Вот только не помню под 6 можно ли это сделать? Можно в 6-ке. Только вряд ли пользователь такому приколу обрадуется.
По хорошему - если есть гриды, то надо Resize() делать. Если одни поля ввода, то pageframe поставить.
...
Рейтинг: 0 / 0
Visual FOX 6 - учет разрешения экрана
    #34814903
MiklS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Про Resize я уже писАл выше и про разрешение тоже, но ведь человек спросил другие варианы. Так пусть пробует все. А на счет прокруток в форме, так это как построить интерфейс. Мы же используем например EditBox с прокруткой!!! и ничего, пользователи в обморок не падают!
...
Рейтинг: 0 / 0
Visual FOX 6 - учет разрешения экрана
    #34815002
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MiklSПро Resize я уже писАл выше и про разрешение тоже, но ведь человек спросил другие варианы. Так пусть пробует все. А на счет прокруток в форме, так это как построить интерфейс. Мы же используем например EditBox с прокруткой!!! и ничего, пользователи в обморок не падают!
Используем, и объект IE используем. Только при этом прокрутка изначально закладывается и расположение элементов с ее учетом выбирается. То что прокрутка зло - я не говорил.

Я к тому что надо делать хорошо, а не лишь бы работало. А almmag похоже хочет одним кликом проблему решить.
...
Рейтинг: 0 / 0
Visual FOX 6 - учет разрешения экрана
    #34816374
almmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем спасибо.
В примере DIMA_T
В первой строчке программы : lpara toObj - что это - я не понял жту строчку
...
Рейтинг: 0 / 0
Visual FOX 6 - учет разрешения экрана
    #34816395
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
almmagВсем спасибо.
В примере DIMA_T
В первой строчке программы : lpara toObj - что это - я не понял жту строчку Функция рекурсивная. Параметер toObj - ссылка на объект контейнер. т.е. изначально на форму: ThisForm.ResizeObject(ThisForm)
а если внутри формы есть еще контейнеры (pageframe например) то она вызывает сама себя this.ResizeObject(loC) для каждого контейнера

Я вызов делаю из Init() формы:
Код: plaintext
1.
2.
3.
4.
if type('gnDefaultFontSize') = 'N' or _screen.WindowState =  2 
	thisform.ResizeObject(thisform)
endif
thisform.AutoCenter = .t.

gnDefaultFontSize - глобальная переменная. Инициализируется при старте программы:
Код: plaintext
1.
public gnDefaultFontSize
gnDefaultFontSize =  12 
...
Рейтинг: 0 / 0
Visual FOX 6 - учет разрешения экрана
    #34816904
almmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет в форме метода ResizeObject()
Может ResizeEvent ?
...
Рейтинг: 0 / 0
Visual FOX 6 - учет разрешения экрана
    #34819299
qwertyqwerty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где и как пересчитывать размеры и координаты визуальных объектов, а так же пересчитывать размеры шрифтов ... дело техники ... суть не в том.

Пока например у меня все более мене нормально получилось только при отключенной функции "Отображать содержимое окна при перетаскивании" в "свойства Экрана", закладка эффекты в винде. Можно менять размер формы и при этом ресайзится все на форме с сохранением пропорций!

Думаю, что это связано с округлением при пересчете - т.к. при включенной опции пересчет происходит практически непрерывно, а при отключенной только в момент окончания ресайза.


З.ы.
действиьельно для 6,7,8,9 - о других версиях не знаю :)
...
Рейтинг: 0 / 0
Visual FOX 6 - учет разрешения экрана
    #34819315
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
almmagНет в форме метода ResizeObject()
Может ResizeEvent ? Правильно. Его создать надо меню Form->New metod, а потом этот код туда вставить
...
Рейтинг: 0 / 0
Visual FOX 6 - учет разрешения экрана
    #34819323
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забыл добавить у меня этот метод присутствует в классе формы, на основе которого (или его производных) делаю все формы проекта.
Один раз прописал и забыл.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Visual FOX 6 - учет разрешения экрана
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]