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

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

spartanec

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

Shandrik

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

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

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

Shandrik

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

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


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


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

lmike

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

Shandrik

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

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

garrick

Lotus team
26.10.2009
894
61
#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

Lotus team
30.12.2010
268
12
#11
Работает, спасибо!

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

alexas1

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

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

Shandrik

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

alexas1

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

Shandrik

Lotus team
30.12.2010
268
12
#18
GetSystemMetrics(0) упорно возвращала нуль.

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

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