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

Здесь обсуждается всё, что касается макросов.
User avatar
zg
zero-gravity
Posts: 6035
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

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

Post by zg »

Latest post of the previous page:

citRiks wrote: Fri 06 Mar, 2020 15:49немодальный диалог это так?
практика показывает что не меняется.
значит вам повезло, либо вы закрыли немодальный диалог, а не переключились с него. в любом случае это зависит от менеджера памяти и думаю даже у текущих vc и gcc сборок разное поведение.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

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

Post by citRiks »

zg,
пробовал разно, сейчас попробовал несколко раз без закрытия с переключением - не меняется
ну меня самого удивило в начале что хендл не каждый раз новый,
но я решил что окно видимо не утилизируется при закрытии,
а хранится в памяти "до востребования", поэтому оставаясь с тем же хедлом,
что разумно.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

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

Post by DrKnS »

Handle - это просто адрес объекта в памяти, аллоцированного стандартным образом. Любые совпадения - случайность и/или оптимизация аллокатора.
User avatar
HaRT
Moderator
Posts: 10863
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

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

Post by DrKnS »

Нет.
"Окно" утилизируется, нигде не хранится, память отдаётся системе.
При создании нового окна у системы запрашивается новый блок памяти. Система может вернуть тот же самый блок, если он свободен.
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post 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
Всё зависит не от алгоритма хэширования, а от свойств исходных данных (а вам требуется уникальность и постоянство).
https://t.me/FarManager — Telegram чат
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

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

Post 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 и так наизобретал много чего уже, чего еще не выкладывал из-за возни этой с размерятелем
Last edited by citRiks on Sat 07 Mar, 2020 11:53, edited 4 times in total.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

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

Post by citRiks »

John Doe wrote: Sat 07 Mar, 2020 09:34 Дело ваше. Но непонятно чего тогда вы в этой теме добиваетесь.
У людей совет прошу, чтобы помочь @XeRoX-у развивать наш православный ФАР
Ну да, он не все советы принимает, что тоже можно понять
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

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

Post by Shmuel »

2admins:
Зачем 2 темы с одинаковым названием? Надо либо объединить, либо переименовать одну из них.
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

citRiks wrote: Sat 07 Mar, 2020 10:47 все зависит не от свойств исходных данных
Сами данные могут измениться.
Как от вызова к вызову, так и при изменении диалога разработчиком.
citRiks wrote: Sat 07 Mar, 2020 10:47 Надеюсь не будем изз этого ссориться? :)
Это уж как хотите. Я допустим верю, например, что у вас не меняются.
Что не отменяет того факта, что на постоянство хэндла нельзя полагаться.
https://t.me/FarManager — Telegram чат
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

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

Post by citRiks »

Shmuel,
тема та же, но есть нюансы. (Как в пошлом анекдоте про чапаева, можно рассказать?)

Я например надеюсь в этой теме кто-нибудь заметит наконец (второе сообщение темы) что основной вопрос был:
"МОЖНО ЛИ ПРИКРУТИТь HАNDLE к FastFind/Search ?" :) спасибо
 ! Message from: John Doe
В отдельной теме: viewtopic.php?f=6&t=12059
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

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

Post 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"
Хотя опять же, обшественного интереса явно недостаточно и для этого
User avatar
buniak_a_h
Posts: 4262
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

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

Post by buniak_a_h »

citRiks,

Это я к тому, что даже объём памяти может повлиять на перераспределение адресов. Ну и, есессно, порядок создания объектов и многое-многое другое. Так что низзя закладываться на повторяемость адресов. Если только разработчики явно не указали, что объект создаётся раз и навсегда, а потом только скрывается-показывается.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

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

Post by citRiks »

buniak_a_h,
buniak_a_h wrote: Sat 07 Mar, 2020 12:22 Пришёл ко мне домой бухгалтер с двумя охранниками, они следили, чтоб я работал не вставая (даже чай сами приносили). Т.к. я управился за пару часов, то мне даже доплатили
Да, вот что баг-репорт животворящий делает! )) (и доплачивание)
Где баг репорты? )) я уж про доплачивание молчу даже
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post 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 - работает".
Это хорошо.
Но добиться того чтобы у работало у всех и гарантированно можно только используя гуиды, как раз для подобных целей и введённые.
https://t.me/FarManager — Telegram чат
Post Reply

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