Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Качество изображения формы после применения Resizer / 4 сообщений из 4, страница 1 из 1
22.03.2012, 19:59
    #37718726
UAP
UAP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Качество изображения формы после применения Resizer
Господа!

Почему качество изображения формы после применения Resizer (и подобных технологий) значительно снижается.
Я попробовал http://foxclub.ru/sol/solution3.php (и еще два, видимо, аналогичных) для перехода с разрешения 1280х1024 на разрешение 1366х768.
При этом, я умножал ширину и высоту формы на коэффициент 0.75 = 768/1024.
При используемом подходе принципиально невозможно сохранить качество?
С другой стороны.
Если коэффициент будет большим 1, качество не ухудшится (это я не успел проверить)?
...
Рейтинг: 0 / 0
23.03.2012, 06:36
    #37719291
AngelOKES
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Качество изображения формы после применения Resizer
UAP, Когда-то я где-то нашел функцию которая растягивает все элементы при запуске программы и немного передел под себя, можете попробовать у себя:

Код: sql
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.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
**********************************************************************
** Максимальная растяжка ФОРМЫ на разные разрешения монитора
** Obj - ссылка на Форму, nHi,nWi - начальная высота и ширина формы, nRez - ширина разрешения
Func FormMax(Obj,nHi,nWi,nRez,nH,nW,lSub)
  Local nBuf,ni,np,nWWW,cBuf
  IF EMPTY(nRez)
    nRez=0
  ENDIF
  nWWW=SYSMETRIC(1)
  IF !lSub
    IF !(TYPE("obj.class")=="C" .AND. UPPER(obj.baseclass)=="FORM")
      RETURN
    ENDIF
    Obj.Top=0
    Obj.Left=0
    nH=Obj.Height
    nW=Obj.Width
    IF nRez==nWWW
      RETURN
    ENDIF  
    IF nH==SYSMETRIC(22)-78 .AND. nW==SYSMETRIC(21)-7
      RETURN
    ENDIF  
    Obj.LockScreen=.T.
    Obj.Height=SYSMETRIC(22)-78
    Obj.Width=SYSMETRIC(21)-7
    nH=Obj.Height/nHi
    nW=Obj.Width/nWi
  ENDIF
  ** Обычные объекты
  ni=1
  DO WHILE TYPE("Obj.Objects(ni).Class")=="C"
  IF TYPE("Obj.Objects(ni).Top")=="N"
    ** Запрет изм ширины колонок
    IF !UPPER(Obj.Objects(ni).Class)="COLUMN" 
      Obj.Objects(ni).Width=Obj.Objects(ni).Width*nW
    ENDIF  
    Obj.Objects(ni).Height=Obj.Objects(ni).Height*nH
    Obj.Objects(ni).Top=Obj.Objects(ni).Top*nH
    Obj.Objects(ni).Left=Obj.Objects(ni).Left*nW
  ENDIF
  IF TYPE("Obj.Objects(ni).FontSize")=="N"
    nBuf=INT(Obj.Objects(ni).FontSize*nW)  
    IF nBuf>4 .AND. nBuf<100
      Obj.Objects(ni).FontSize=nBuf 
    ENDIF  
  ENDIF 
  ** PageFrame
  np=1
  DO WHILE TYPE("Obj.Objects(ni).Pages(np).Class")=="C"
    nBuf=INT(Obj.Objects(ni).Pages(np).FontSize*nW)  
    IF nBuf>4 .AND. nBuf<100
      Obj.Objects(ni).Pages(np).FontSize=nBuf 
    ENDIF  
    np=np+1
  ENDDO
  IF LOWER(Obj.Objects(ni).ParentClass)=="container" 
     =Obj.Objects(ni).Resize()
  ENDIF
  ni=ni+1
ENDDO
IF !lSub
  Obj.LockScreen=.F.
ENDIF 
RETURN



Вызывается она в загрузке формы, в процедуре Init, вот таким способом:

Код: sql
1.
FormMax(Thisform,560,793,800)


Соответственно 560 - это высота формы реальная, 793 - ширина, а 800 - это то разрешение на которое вы писали форму.
Я ей пользуюсь постоянно и никаких проблем нет...
...
Рейтинг: 0 / 0
23.03.2012, 07:43
    #37719311
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Качество изображения формы после применения Resizer
Меняя автоматом размеры контролов невозможно красиво растянуть на весь экран форму. У тебя первый моник квадратный (3:4) второй широкоформатный (9:16)
Менять размеры надо исходя из размера шрифта. Например при разработке делаешь все 9м шрифтом, а юзер у себя выбирает какой ему надо, например 11й, тогда все увеличиваешь с коэф. 11/9.
Растяжение на весь экран настраиваешь с помощью свойства Anchor.

Чтобы влезло в высоту 768 надо заранее компоновать форму с учетом этого.
...
Рейтинг: 0 / 0
23.03.2012, 12:44
    #37719872
UAP
UAP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Качество изображения формы после применения Resizer
Уважаемые коллеги!

Спасибо за рекомендации.
Займусь их изучением...
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Качество изображения формы после применения Resizer / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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