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

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

  1. spartanec

    spartanec Гость

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

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

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

    spartanec Гость

  4. Shandrik

    Shandrik Well-Known Member

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

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

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

    garrick Lotus team
    Lotus team

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

    alexas1 Lotus team
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    567
    Симпатии:
    214
    - на 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
    Сообщения:
    236
    Симпатии:
    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.082
    Симпатии:
    300
    переменную где объявили и где заюзали? @alexas1, написал var - это ограничивает контекст видимости, если нужна глобальная, то её и надо объявлять до всех ф-ций (или получать из ф-ции)
     
  9. Shandrik

    Shandrik Well-Known Member

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

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

    garrick Lotus team
    Lotus team

    Регистрация:
    26 окт 2009
    Сообщения:
    773
    Симпатии:
    52
    Чем не понравился мой вариант #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
    Сообщения:
    236
    Симпатии:
    24
    Работает, спасибо!

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

    alexas1 Lotus team
    Lotus team

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

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

    Shandrik Well-Known Member

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

    alexas1 Lotus team
    Lotus team

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

    Shandrik Well-Known Member

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

    alexas1 Lotus team
    Lotus team

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

    Shandrik Well-Known Member

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

    Shandrik Well-Known Member

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

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

    GetSystemMetrics(1) работала правильно изначально. Чудно. :)
     
Загрузка...
Похожие Темы - Разрешение экрана
  1. paxac
    Ответов:
    0
    Просмотров:
    47
  2. Gudzik11
    Ответов:
    6
    Просмотров:
    2.240
  3. aameno2
    Ответов:
    0
    Просмотров:
    222
  4. KatyaVm22
    Ответов:
    4
    Просмотров:
    1.394
  5. malor
    Ответов:
    0
    Просмотров:
    2.541

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