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

Тема в разделе "Lotus - Программирование", создана пользователем spartanec, 6 май 2011.

Наш партнер Genesis Hackspace
  1. spartanec

    spartanec Гость

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

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.060
    Симпатии:
    18
    Display_font_adjustment=-1
     
  3. spartanec

    spartanec Гость

  4. Shandrik

    Shandrik Well-Known Member

    Регистрация:
    30 дек 2010
    Сообщения:
    242
    Симпатии:
    24
    Как получить разрешение экрана?
    В документе тикета в табличке есть поле с ошибкой во время выполнения функции, справа и снизу есть ещё ячейки с полями. Если ошибка длинная, то разваливается вся таблица. Сделал такое решение - отображаю в таблице 35 символов ошибки:
    MaxSymbolNumber:=35;
    ThisValue:[email protected](@Right(@ThisName;"dsp"));
    @If(@Length(ThisValue)>MaxSymbolNumber;@Left(ThisValue;MaxSymbolNumber)+"...";ThisValue)

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

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

    garrick Well-Known Member
    Lotus team

    Регистрация:
    26 окт 2009
    Сообщения:
    780
    Симпатии:
    54
  6. alexas1

    alexas1 Well-Known Member
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    576
    Симпатии:
    215
    - на JS.
    В JS Header формы:
    var f = document.forms[0];
    f.wField.value = screen.width;
    f.hField.value = screen.height;
    И дальше пользуешься.

    не забудь установить, что скрипт клиентский
     
  7. Shandrik

    Shandrik Well-Known Member

    Регистрация:
    30 дек 2010
    Сообщения:
    242
    Симпатии:
    24
    Получил такую ошибку. Что я не так делаю?

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


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


    P.S. С JS в Лотусе дела не имел практически.
     
    #7 Shandrik, 18 ноя 2015
    Последнее редактирование модератором: 18 ноя 2015
  8. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.119
    Симпатии:
    301
    переменную где объявили и где заюзали? @alexas1, написал var - это ограничивает контекст видимости, если нужна глобальная, то её и надо объявлять до всех ф-ций (или получать из ф-ции)
     
  9. Shandrik

    Shandrik Well-Known Member

    Регистрация:
    30 дек 2010
    Сообщения:
    242
    Симпатии:
    24
    Теперь вообще не понял. Как это для всех функций?
    Как я понял, указанный код создаёт два поля на форме, которое потом можно подобрать ЛотусСкриптом.
    Ну так до этого ещё и не дошло - явно же в JSHeader-е ругается - при загрузке.

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

    garrick Well-Known Member
    Lotus team

    Регистрация:
    26 окт 2009
    Сообщения:
    780
    Симпатии:
    54
    Чем не понравился мой вариант #5? Всё же очень просто
    Код (LotusScript):

    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
     
  11. Shandrik

    Shandrik Well-Known Member

    Регистрация:
    30 дек 2010
    Сообщения:
    242
    Симпатии:
    24
    Работает, спасибо!

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

    alexas1 Well-Known Member
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    576
    Симпатии:
    215
    - не создаёт, а пишет в существующие поля.
    - JS в клиенте с ограничением - в не будут работать никакие функции с доступом к DOM (к примеру getelementbyid работать не будет) (даст ошибку, что "это не функция")
    Использовать как вычислитель, проверятель, кликер на кнопу - кошерно.
    Быстродействие - почти собаки.
    Использовать setTimeout и setInterval с осторожностью - можно нарваться на нехватку памяти для JS (отпущено примерно 20мб).

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

    Shandrik Well-Known Member

    Регистрация:
    30 дек 2010
    Сообщения:
    242
    Симпатии:
    24
    Была такая мысль, создал поля - не помогло.
     
  14. alexas1

    alexas1 Well-Known Member
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    576
    Симпатии:
    215
    - и в чём бага? Вроде всё очевидно.
     
  15. Shandrik

    Shandrik Well-Known Member

    Регистрация:
    30 дек 2010
    Сообщения:
    242
    Симпатии:
    24
    Ну получаю ту же ошибку при попытке открыть документ.
    Мне совсем не очевидно. :(
     
  16. alexas1

    alexas1 Well-Known Member
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    576
    Симпатии:
    215
    - извини, на автомате писал (просто я все JS функции забиваю в JsHeader)
    Код втыкать в onLoad (что соответствует Postopen)
    JsHeader выполняется до загрузки формы, соотв. ошибка - полей ещё нет.
     
  17. Shandrik

    Shandrik Well-Known Member

    Регистрация:
    30 дек 2010
    Сообщения:
    242
    Симпатии:
    24
    Та дааам!!! Заработало! Спасибо!
     
  18. Shandrik

    Shandrik Well-Known Member

    Регистрация:
    30 дек 2010
    Сообщения:
    242
    Симпатии:
    24
    GetSystemMetrics(0) упорно возвращала нуль.

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

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

Поделиться этой страницей