Разрешение экрана

  • Автор темы spartanec
  • Дата начала
S

spartanec

Гость
#1
Сделал базу, все шрифты и изображения подбирались под разрешение экрана 1280Х1024.
Но у пользователей преклонного возраста и с плохим зрение выставлено разрешение 1024Х768, а у некоторых вообще 800Х600. Соответсвеннно все выбрание мною шрифты выглядят просто гигандскими и не помещаються в отведенные им границы фреймов. А некоторым экран 12080Х1024 подходит, а вот в базе мелковато. Есть ли какие то решения по этому вопросу?
 

Shandrik

Well-Known Member
Lotus team
30.12.2010
268
26
#4
Как получить разрешение экрана?
В документе тикета в табличке есть поле с ошибкой во время выполнения функции, справа и снизу есть ещё ячейки с полями. Если ошибка длинная, то разваливается вся таблица. Сделал такое решение - отображаю в таблице 35 символов ошибки:
MaxSymbolNumber:=35;
ThisValue:=@GetField(@Right(@ThisName;"dsp"));
@If(@Length(ThisValue)>MaxSymbolNumber;@Left(ThisValue;MaxSymbolNumber)+"...";ThisValue)

а целиком ошибку кажу в попупе.

35 символов получил, поставив разрешение поменьше, чтобы у большего числа пользователей влезло, но на моём рабочем разрешении половина поля пустая, что обидно. Хорошо бы получить разрешение экрана, чтобы эту цифирку сделать более годной.
 

Shandrik

Well-Known Member
Lotus team
30.12.2010
268
26
#7
Получил такую ошибку. Что я не так делаю?

Хм, файл не удаётся прикрепить.


Вобщем, пишет:
Error: ToObjectError: f.wField has no properties


P.S. С JS в Лотусе дела не имел практически.
 
Последнее редактирование модератором:

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 484
360
#8
Error: ToObjectError: f.wField has no properties
переменную где объявили и где заюзали? @alexas1, написал var - это ограничивает контекст видимости, если нужна глобальная, то её и надо объявлять до всех ф-ций (или получать из ф-ции)
 

Shandrik

Well-Known Member
Lotus team
30.12.2010
268
26
#9
Теперь вообще не понял. Как это для всех функций?
Как я понял, указанный код создаёт два поля на форме, которое потом можно подобрать ЛотусСкриптом.
Ну так до этого ещё и не дошло - явно же в JSHeader-е ругается - при загрузке.

Не могу найти тему, где бы рассказали, как скрестить Лотус с JS.
 

garrick

Well-Known Member
Lotus team
26.10.2009
877
75
#10
Чем не понравился мой вариант #5? Всё же очень просто
Код:
Declare Function GetSystemMetrics Lib "user32" (Byval nIndex) As Long
 
Sub Click(Source As Button)
	Messagebox "Size : " + Cstr(GetSystemMetrics(0)) +"x" + Cstr(GetSystemMetrics(1))
End Sub
 

Shandrik

Well-Known Member
Lotus team
30.12.2010
268
26
#11
Работает, спасибо!

Но я хотел бы разобраться с JS на всякий невиндовый случай. Может эти поля нельзя так вот просто заполнить. Может их получить надо? Например на форме создать, дать им id-шники, получить элемент по этому id-шнику и уже его проперти менять?
 

alexas1

Well-Known Member
Lotus team
10.04.2014
704
242
#12
указанный код создаёт два поля на форме
- не создаёт, а пишет в существующие поля.
хотел бы разобраться с JS на всякий невиндовый случай.
- JS в клиенте с ограничением - в не будут работать никакие функции с доступом к DOM (к примеру getelementbyid работать не будет) (даст ошибку, что "это не функция")
Использовать как вычислитель, проверятель, кликер на кнопу - кошерно.
Быстродействие - почти собаки.
Использовать setTimeout и setInterval с осторожностью - можно нарваться на нехватку памяти для JS (отпущено примерно 20мб).

Общение с LS и собаками только через поле.
Общение JS скриптов между собой - через поле и глобальную JS переменную (объявленную без var). Область видимости - то, что есть на экране (включая скрытые элементы форм и фреймов).
 

Shandrik

Well-Known Member
Lotus team
30.12.2010
268
26
#15
Ну получаю ту же ошибку при попытке открыть документ.
Мне совсем не очевидно. :(
 

alexas1

Well-Known Member
Lotus team
10.04.2014
704
242
#16
- извини, на автомате писал (просто я все JS функции забиваю в JsHeader)
Код втыкать в onLoad (что соответствует Postopen)
JsHeader выполняется до загрузки формы, соотв. ошибка - полей ещё нет.
 

Shandrik

Well-Known Member
Lotus team
30.12.2010
268
26
#18
GetSystemMetrics(0) упорно возвращала нуль.

GetSystemMetrics(clng(0)) вернула нужные цифирки.

GetSystemMetrics(1) работала правильно изначально. Чудно. :)