Page 14 of 14

Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг

Posted: Sun 08 Dec, 2019 11:17
by Xerox
Предыстория вопроса
Современный мир характеризуется большим количеством больших экранов.
А также длинными именами файлов, и прочими "многа букав"
В то же время, размер диалоговых окон в ФАРе, не менялся десятилетиями,
обладая слишком малой величиной, чтобы полностью соответствать современным вызовам.
Более того, не было никакой возможности расширить окошки до приемлимых размеров даже вручную.
Но эти эти горести остались в далеком темном прошлом (смахивает слезу)
поскольку сейчас у нас есть Автоматический Раздвигатель Окон!

https://github.com/dr-dba/LUA-FAR-STUFF ... .XeR0X.Lua


Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг

Posted: Wed 29 Apr, 2020 18:28
by LAT

Latest post of the previous page:


Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг

Posted: Thu 30 Apr, 2020 04:26
by citRiks
LAT, skipik,
Ну вот, при XeRoX'e такого не было
и что теперь будем делать без него?
Может надо дождаться стабильного билда?
Или уже сейчас кричать "усе пропало шеф"?
Думаю что работа с УТФ8 порушена как следует.
Я больше получаю ошибку что-то вроде "ошибка диагностики в процедуре диагностики",
но .. сейчас кажется уже не повторяются ошибки, не могу даже скопипастить

Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг

Posted: Thu 30 Apr, 2020 04:32
by citRiks
ваш багрепорт все равно помог однако, тут вот какая штука:
раньше win.Uuid():len() возвращал то что надо - длина говорит строки 15 букав.
Ну потому что GUID, какой бы он ни был, это все таки строка.
binary data у нас в Lua нет однако, есть UserData, но это не в эту дырку суется.
А теперь win.Uuid():len() возвращает черти че, можете проверить.

И кто ответит, как с этим жить, это баг или фича теперь?

Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг

Posted: Thu 30 Apr, 2020 04:40
by citRiks
Однако, предварительный фикс кажется что состоит в этом:

Code: Select all

function fnc_norm_guid(the_guid)
	if not the_guid	then return end
	local the_type = type(the_guid)
	if the_type == "number" or the_type == "userdata" then return end
	if	type(the_guid) == "string" and the_guid:len() == nil or
		the_guid:len() <= 16 -- can be less than 16
	then 	the_guid = win.Uuid(the_guid)
	end
	if 	the_guid == GUID_ZERO or not the_guid
	then	return
	else	return the_guid:upper()
	end
end
Но вопрос остается, сейчас "строковый механизьм" (или как это называется?)
творит по-моему фигню, конвертирует в УТФ8 по умолчанию что ли?
lua:=utf8.len(win.Uuid()) однако тоже не помогает

Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг

Posted: Thu 30 Apr, 2020 04:50
by buniak_a_h
citRiks wrote: Thu 30 Apr, 2020 04:32 И кто ответит, как с этим жить, это баг или фича теперь?
Замените win.Uuid():len() на string.len(win.Uuid()) - и будет Вам Щястие Велиое.
Подсказка от jd в другом месте, но причина, думаю, та же, и лекарство то же.

Динамическое или заданное изменение размеров ВСЕХ диалогов, меню, списков в зависимости от размера консоли, а ткж сдвиг

Posted: Thu 30 Apr, 2020 05:51
by citRiks
прилагается пофиксенная версия имени А. Буняк
Вроде все работает так