Page 2 of 3

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

Posted: Fri 06 Mar, 2020 18:29
by zg

Latest post of the previous page:

citRiks wrote: Fri 06 Mar, 2020 15:49немодальный диалог это так?
практика показывает что не меняется.
значит вам повезло, либо вы закрыли немодальный диалог, а не переключились с него. в любом случае это зависит от менеджера памяти и думаю даже у текущих vc и gcc сборок разное поведение.

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

Posted: Fri 06 Mar, 2020 18:37
by citRiks
zg,
пробовал разно, сейчас попробовал несколко раз без закрытия с переключением - не меняется
ну меня самого удивило в начале что хендл не каждый раз новый,
но я решил что окно видимо не утилизируется при закрытии,
а хранится в памяти "до востребования", поэтому оставаясь с тем же хедлом,
что разумно.

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

Posted: Fri 06 Mar, 2020 19:31
by DrKnS
Handle - это просто адрес объекта в памяти, аллоцированного стандартным образом. Любые совпадения - случайность и/или оптимизация аллокатора.

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

Posted: Fri 06 Mar, 2020 19:36
by citRiks
DrKnS, по-моему вами сказанное подтверждает то что я говорил сообщением выше, не?

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

Posted: Fri 06 Mar, 2020 19:59
by HaRT

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

Posted: Fri 06 Mar, 2020 19:59
by DrKnS
Нет.
"Окно" утилизируется, нигде не хранится, память отдаётся системе.
При создании нового окна у системы запрашивается новый блок памяти. Система может вернуть тот же самый блок, если он свободен.

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

Posted: Sat 07 Mar, 2020 09:34
by John Doe
citRiks wrote: Fri 06 Mar, 2020 15:49 немодальный диалог это так?
far.DialogInit(win.Uuid(), -1, -1, 20, 5, nil, {{far.Flags.DI_TEXT, 1, 1, 0, 0, 0, 0, 0, 0, "abc 123"}}, far.Flags.FDLG_NONMODAL, nil)
практика показывает что не меняется.
Практика показывает, что меняется.
citRiks wrote: Fri 06 Mar, 2020 16:48 В винде например, вообще все окна можно ресайзить
В Windows 10 многие можно. Далеко не все.
citRiks wrote: Fri 06 Mar, 2020 16:48 мне совесть не позволяет, потому что на месте плугинописателей я посылал бы таких реквесторов далеко и надолго
Дело ваше. Но непонятно чего тогда вы в этой теме добиваетесь.
citRiks wrote: Fri 06 Mar, 2020 17:07 т.е. я думаю что коллизиии не реальны уже при CRC32
Всё зависит не от алгоритма хэширования, а от свойств исходных данных (а вам требуется уникальность и постоянство).

handle нельзя использовать в качестве ID

Posted: Sat 07 Mar, 2020 10:47
by citRiks
John Doe wrote: Sat 07 Mar, 2020 09:34 Всё зависит не от алгоритма хэширования, а от свойств исходных данных (а вам требуется уникальность и постоянство).
все зависит не от свойств исходных данных, а от их одного свойства которое называется "уровень энтропии" или просто "энтропия".
Да, CRC32 более чувствителен к низкой энтропии входных данных, чем специальные "противо-низко-энтропные" например SHA2 и MD5.
Но у нас CRC32 вычисляется по текстам диалогов, в которых много разных буков и цифр, т.е. обладающие высокой энтропией,
или можно сказать что непредсказуемостью, что дает больше уникальных значений для CRC32.
Если же взять CRC64 то думаю что коллизии будут исключены даже в теории.
Могу где-то ошибаться, точных вероятностей коллизий у меня нет, изложил свое понимание и оценку "плюс-минус лапоть"
citRix wrote:практика показывает что не меняется.
John Doe wrote: Sat 07 Mar, 2020 09:34Практика показывает, что меняется.
Надеюсь не будем изз этого ссориться? :)
у меня не повтoряется, но @XeRoX чтобы исключить потенциальные сюрпризы в любом случае переводит на идентификацию по CRC32/64

Точнее так,
для сохранения состояния МЕЖДУ СЕССИЯМИ (прим.: ранее тут была опечатка) уже сейчас используется CRC32,
для внутрисессионной идентификации используется у него какая-то адская смесь из "ручек", ГУИДов (если есть), и того же CRC32.
в конечном итоге и для внутрисессионой идентификации будет CRC32.

CRC32 вычисляется по всем предполагаемо неменяемым элементам диалога и меню,
что дает и уникальность и много энтропии в кажется что большинстве случаев.
С другой стороны, это сейчас работает настолько гладко,
что может отсоветую ему переводить полностью на CRC32, а дождаться бахг-репортов каких.
опять же, если баг-репортов (=интереса) не будет, то пусть будет так как есть,
@XeRoX и так наизобретал много чего уже, чего еще не выкладывал из-за возни этой с размерятелем

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

Posted: Sat 07 Mar, 2020 10:50
by citRiks
John Doe wrote: Sat 07 Mar, 2020 09:34 Дело ваше. Но непонятно чего тогда вы в этой теме добиваетесь.
У людей совет прошу, чтобы помочь @XeRoX-у развивать наш православный ФАР
Ну да, он не все советы принимает, что тоже можно понять

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

Posted: Sat 07 Mar, 2020 11:25
by Shmuel
2admins:
Зачем 2 темы с одинаковым названием? Надо либо объединить, либо переименовать одну из них.

handle нельзя использовать в качестве ID

Posted: Sat 07 Mar, 2020 11:53
by John Doe
citRiks wrote: Sat 07 Mar, 2020 10:47 все зависит не от свойств исходных данных
Сами данные могут измениться.
Как от вызова к вызову, так и при изменении диалога разработчиком.
citRiks wrote: Sat 07 Mar, 2020 10:47 Надеюсь не будем изз этого ссориться? :)
Это уж как хотите. Я допустим верю, например, что у вас не меняются.
Что не отменяет того факта, что на постоянство хэндла нельзя полагаться.

handle нельзя использовать в качестве ID

Posted: Sat 07 Mar, 2020 11:58
by citRiks
Shmuel,
тема та же, но есть нюансы. (Как в пошлом анекдоте про чапаева, можно рассказать?)

Я например надеюсь в этой теме кто-нибудь заметит наконец (второе сообщение темы) что основной вопрос был:
"МОЖНО ЛИ ПРИКРУТИТь HАNDLE к FastFind/Search ?" :) спасибо
 ! Message from: John Doe
В отдельной теме: viewtopic.php?f=6&t=12059

handle нельзя использовать в качестве ID

Posted: Sat 07 Mar, 2020 12:08
by citRiks
John Doe wrote: Sat 07 Mar, 2020 11:53 Сами данные могут измениться.
Как от вызова к вызову, так и при изменении диалога разработчиком.
ну верно, но тогда тем более актуальнее рассматривать получившееся как новый диалог с новым "ИД"
И я знаю, что например, все "edited field" (или правильнее "edit controls"?) не считаются для CRC32
John Doe wrote: Sat 07 Mar, 2020 11:53Что не отменяет того факта, что на постоянство хэндла нельзя полагаться.
ну тут возвращаемся к нашемy любимому "ждем-с баг-репортов".
А так - "у меня работает, у @XeRoXa работает, у всех кто потрудился сделать минимальлный QA - работает".
Интереса к теме я не наблюдаю, спасибо за общение и замечания,
но похоже что тема пока не выглядит интересной даже отписавшимся здесь.. ?
Лично я в восторге, потому что кроме сохранения состояния окон,
в перспективе так же должно делатся сохранение состояния панелей,
что-то вроде "certain sorting and view mode per directory"
Хотя опять же, обшественного интереса явно недостаточно и для этого

handle нельзя использовать в качестве ID

Posted: Sat 07 Mar, 2020 12:22
by buniak_a_h
citRiks,

Это я к тому, что даже объём памяти может повлиять на перераспределение адресов. Ну и, есессно, порядок создания объектов и многое-многое другое. Так что низзя закладываться на повторяемость адресов. Если только разработчики явно не указали, что объект создаётся раз и навсегда, а потом только скрывается-показывается.

handle нельзя использовать в качестве ID

Posted: Sat 07 Mar, 2020 13:14
by citRiks
buniak_a_h,
buniak_a_h wrote: Sat 07 Mar, 2020 12:22 Пришёл ко мне домой бухгалтер с двумя охранниками, они следили, чтоб я работал не вставая (даже чай сами приносили). Т.к. я управился за пару часов, то мне даже доплатили
Да, вот что баг-репорт животворящий делает! )) (и доплачивание)
Где баг репорты? )) я уж про доплачивание молчу даже

handle нельзя использовать в качестве ID

Posted: Sat 07 Mar, 2020 13:27
by John Doe
citRiks wrote: Sat 07 Mar, 2020 12:08 И я знаю, что например, все "edited field" (или правильнее "edit controls"?) не считаются для CRC32
Зачем "edited field". Нажмите например F5 - увидите имя файла (Copy ... to) абсолютно нередактируемое.
citRiks wrote: Sat 07 Mar, 2020 12:08 А так - "у меня работает, у @XeRoXa работает, у всех кто потрудился сделать минимальлный QA - работает".
Это хорошо.
Но добиться того чтобы у работало у всех и гарантированно можно только используя гуиды, как раз для подобных целей и введённые.