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

Здесь обсуждается всё, что касается макросов.
User avatar
Xerox
Posts: 393
Joined: Sun 20 Oct, 2019 15:50
Has thanked: 354 times
Been thanked: 9 times

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

Post by Xerox »

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

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

Last edited by Xerox on Fri 03 Jan, 2020 08:52, edited 47 times in total.
LAT
Posts: 326
Joined: Thu 21 Jan, 2010 20:00
Has thanked: 19 times
Been thanked: 34 times

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

Post by LAT »

Latest post of the previous page:

Last edited by LAT on Wed 29 Apr, 2020 18:29, edited 1 time in total.
citRiks
Posts: 899
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 274 times
Been thanked: 47 times

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

Post by citRiks »

LAT, skipik,
Ну вот, при XeRoX'e такого не было
и что теперь будем делать без него?
Может надо дождаться стабильного билда?
Или уже сейчас кричать "усе пропало шеф"?
Думаю что работа с УТФ8 порушена как следует.
Я больше получаю ошибку что-то вроде "ошибка диагностики в процедуре диагностики",
но .. сейчас кажется уже не повторяются ошибки, не могу даже скопипастить
Last edited by citRiks on Thu 30 Apr, 2020 04:27, edited 1 time in total.
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
citRiks
Posts: 899
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 274 times
Been thanked: 47 times

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

Post by citRiks »

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

И кто ответит, как с этим жить, это баг или фича теперь?
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
citRiks
Posts: 899
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 274 times
Been thanked: 47 times

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

Post 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()) однако тоже не помогает
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
buniak_a_h
Posts: 2129
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 131 times
Been thanked: 211 times
Contact:

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

Post by buniak_a_h »

citRiks wrote: Thu 30 Apr, 2020 04:32 И кто ответит, как с этим жить, это баг или фича теперь?
Замените win.Uuid():len() на string.len(win.Uuid()) - и будет Вам Щястие Велиое.
Подсказка от jd в другом месте, но причина, думаю, та же, и лекарство то же.
Last edited by buniak_a_h on Thu 30 Apr, 2020 04:50, edited 1 time in total.
citRiks
Posts: 899
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 274 times
Been thanked: 47 times

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

Post by citRiks »

прилагается пофиксенная версия имени А. Буняк
Вроде все работает так
Attachments
Dialog_ReXiZeR.v1-2-2.@Xer0X.Lua.7z
(8.37 KiB) Downloaded 18 times
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
Post Reply

Return to “Обсуждение макросов”