Jump to content

Помогите справится с этими большими проблемами.


Recommended Posts

Люди, у меня есть два очень важных вопроса. ПОЖАЛУЙСТА, помогите мне с ними.

1. Сделал универсальное окно для выведения уведомлений (типо, вы ввели при регистрации тот логин, который занят уже/пытаетесь войти в то меню, в которое нельзя.). Обычное окошко (window) по средине экрана, где почти всё пространство (этого окна) занимает label, ну и одна button ещё есть в стиле "ок". Так вот, так как я ленивый человек, то адаптировать текст каждый раз не хочу. Поэтому в зависимости от размеров label (которые я нахожу через размер шрифта и размер текста) меняется window и button. И всё бы хорошо, но вот загвоздочка одна. Использую значит я guiLabelSetHorizontalAlign(errorW.label, "left", true), чтобы всё было не в одну строку. А косяк в том, что guiLabelGetTextExtent, которым я находил ПОЛНУЮ длину текста, не учитывает те пропуски, которые допускает guiLabelSetHorizontalAlign, когда слово не вмещается в строку. Из-за этих пропусков часто неверно считаются размеры.

P.S. Подсчёт размеров делаю так

local y =  guiLabelGetFontHeight(errorW.label) 
    local k = guiLabelGetTextExtent(errorW.label) 
    local s = math.ceil(math.sqrt(k * y / 2.5) / y) 
    local x = math.ceil(k / s) -- соответственно label имеет width = x и height = y * s  

Собственно как вы можете мне помочь. Я вижу два пути:

1. Расскажите как мне подсчитать сколько мне пикселей нужно добавить в размер height, чтобы часть текста не отсекалась.

2. Или расскажите как сделать перенос не слов, а БУКВ (то есть, чтобы слово разрывалось).

!Проблема номер 2!

Проблема с браузером. Создал gui браузер, поставил фоном видео, всё идеально. Прикрепил к браузеру деток, всё работает, но когда в поле edit нажимаешь backspace, то браузер закрывается или когда нажимаешь на фон (браузер, как фон)и нажимаешь backspace, то тоже браузер слетает. Посоветуйте как это пофиксить.

ВНИМАНИЕ!!!! Если что-то не поняли, спрашивайте. Проблемы актуальные, никак решить их не могу.

Link to comment

Мне кажется, что проще, чем посчитать символьную длину окна, нет ничего. Узнаешь, сколько целых символов (без пробелов) вмещается в заданную длину, а потом каждый раз отсекаешь со строки и делаешь перенос (\n). По количеству строчек считаешь высоту текста, и применяешь. Label сам по себе не поддерживает перенос строк под длину. А вот memobox поддерживает, но в нём будет сложнее посчитать высоту.

Насчёт браузера не знаю, но мне кажется, что Backspace выполняет роль перехода на предыдущую страницу (по крайней мере на десктопе так). Но позволить себе такое удовольствие, как браузер в МТА я не особо могу, так как являюсь пользователем Arch, а как известно, на Arch не работает 1.5 (приходится выживать с 1.4)

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...