Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Autorun
Goto page Previous  1, 2, 3 ... 89, 90, 91 ... 191, 192, 193  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Loopback



Joined: 07 Sep 2009
Posts: 1545

Post (Separately) Posted: Fri Mar 08, 2019 01:08    Post subject: Reply with quote

Flasher wrote:
При каждом вызове любого окна считываются все хэши на предмет класса и разрешения?

Даже если бы так было, ты бы вряд ли заметил замедление Smile Разумеется, сделано не так. Хэши "независимые" считаются один раз для всех диалогов при запуске (как хорошо и эффективно было в первом варианте...). "Зависимые" - один раз для одного диалога при каждом открытии диалога (можно, конечно, и здесь чуть оптимизировать, но лень). Далее секции читаются и пишутся напрямую.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Mar 08, 2019 01:16    Post subject: Reply with quote

Loopback wrote:
"Зависимые" - один раз для одного диалога при каждом открытии диалога
А как ты отличаешь зависимые от независимых без перечёта всех хэшей?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1545

Post (Separately) Posted: Fri Mar 08, 2019 01:31    Post subject: Reply with quote

Flasher
Ээ, ну их как бы и не надо специально отличать. Они же уникальны для каждого диалога. И те и другие. Конечно, коллизии совсем нельзя исключить, но на таком количестве строк они очень маловероятны.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Mar 08, 2019 01:39    Post subject: Reply with quote

Loopback
Ты же пишешь, что "сделано не так". Я спрашиваю про момент открытия любого окна. Ты пишешь, что независимые считаются единожды. Но файл же пополняется. Как без "вечного" пересчёта можно выяснить, какие считать единожды, а какие при каждом вызове?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1545

Post (Separately) Posted: Fri Mar 08, 2019 02:10    Post subject: Reply with quote

Flasher
Единожды считается на основе данных диалога (строка из класса диалога, условий - кстати, забыл, надо еще обязательно учитывать условия visible). При запуске окна ("окно", чтобы отличать от диалога, "диалог" в данном случае - его описание во внутреннем массиве) - диалог мы определяем по классу окна плюс исходя из заданных условий, независимый хэш для него уже посчитан вначале. Для прошлой версии этого уже было достаточно, по хэшу сразу читаем/пишем секцию. Независимый хэш всегда одинаков для диалога при любом разрешении. Зависимый считается заново из тех же исходных данных (диалог-то мы уже нашли условиями) плюс строка разрешения экрана - хэш другой. При изменении разрешения строка разрешения поменяется, опять будет другой хэш. Всё просто Smile

В общем, если остались вопросы - всё завтра.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Mar 08, 2019 08:36    Post subject: Reply with quote

Loopback
То, чем отличаются зависимые и независимые хэши, я не спрашиваю. С этим было понятно.
Я спрашиваю про то, что происходит в момент запуска окна. Хэш независимый записан в ini. Но в любом случае нужно опять выснить все данные для сравнения с ini? Или есть какая-то автопривязка ко всем окнам типа раширенного стиля, которая сразу выдаёт нужный хэш?
Loopback wrote:
При изменении разрешения строка разрешения поменяется, опять будет другой хэш.
И всё равно непонятно, зачем писать разрешение в хэш, если можно вдвое сэкономить на секциях? Или хэш меняется при смене разрешения независимо от склейки?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1545

Post (Separately) Posted: Fri Mar 08, 2019 15:14    Post subject: Reply with quote

Flasher
Слушай, я не знаю, как ещё объяснить. Я же сказал, в момент запуска окна считается ровно один хэш для того диалога, который открывается, с учётом разрешения. Считается на основе данных, которые ты задаешь командами AddDialog, AddCondition + строка разрешения. Hex-строка из подсчитанного хэша - это секция ini, я сразу ее читаю и записываю.

По "экономии" секций даже говорить не о чем, нет никакой принципиальной экономии, условно говоря, какая разница, 100 значений по 50 в 2 секции или по 4 в 25. Секций больше, зато не надо делать кучу конкатенаций для чтения каждого значения в виде хэш_Left и т.д.

Я же не говорю, что твоим способом принципиально нельзя сделать, но в данном случае это не даёт никакого выигрыша, плюс реализация уже была сделана, удобная и быстрая, зачем изобретать велосипед?
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Mar 08, 2019 16:09    Post subject: Reply with quote

Loopback
Как и из чего формируются хэши это по 2-му разу повторять не нужно.
Вот "сразу записываю" уже о чём-то говорит. Т.е. пишешь без сравнения.
Loopback wrote:
По "экономии" секций даже говорить не о чем, нет никакой принципиальной экономии, условно говоря, какая разница, 100 значений по 50 в 2 секции или по 4 в 25.
Насчёт "вдвое" я, конечно, слукавил:
 Твой вариант (32 строки)

 Мой вариант (28 строк):
Разница несущественная, хотя с увеличением числа разрешений и окон она будет расти в пользу моего варианта.

Loopback wrote:
зато не надо делать кучу конкатенаций для чтения каждого значения в виде хэш_Left и т.д.
В рамках запуска одного окна не кучу, а всего 4. И тебе, если я правильно понял, не придётся по новой считать хэши:
Loopback wrote:
Хэши "независимые" считаются один раз для всех диалогов при запуске
Уж явно 4 конкатенации по скорости значительно быстрее вычисления хэша.

Loopback wrote:
плюс реализация уже была сделана, удобная и быстрая, зачем изобретать велосипед?
Я сейчас больше интересуюсь не в целях перекомпиляции, а скорее в образовательных.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1545

Post (Separately) Posted: Fri Mar 08, 2019 17:32    Post subject: Reply with quote

Quote:
Уж явно 4 конкатенации по скорости значительно быстрее вычисления хэша.

Замерять не буду, но не факт, хэш простейший, криптостойкость же ему не нужна. Плюс есть как минимум два пути оптимизации, может даже и сделаю один (расчет зависимого на основе независимого), тогда будет точно быстрее. Но на самом деле реально не вижу необходимости, на строках в пару десятков символов это микросекунды, а у нас не какие-нибудь нагруженные базы данных, где это будет хоть как-то заметно.
Quote:
интересуюсь не в целях перекомпиляции

Это понятно, про переделывать я и слушать не стану Smile Посему предлагаю заканчивать, раз все равно ничего меняться не будет.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Mar 08, 2019 18:11    Post subject: Reply with quote

Loopback wrote:
Это понятно
Было бы понятно, не спросил бы про велосипед. Wink

В общем, если захочешь оптимизировать, делай. Или выкладывай релиз с правкой смещения до левой границы и хелпа (если нужны примеры всех окон Тотала с комментами, пиши, выложу). Я бы ещё переименовал плагин под новые реалии. MoveWindow/MoveDialog — что-то в этом духе.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Loopback



Joined: 07 Sep 2009
Posts: 1545

Post (Separately) Posted: Fri Mar 08, 2019 18:34    Post subject: Reply with quote

Flasher wrote:
. Я бы ещё переименовал плагин под новые реалии.

Про переименование уже думал, как минимум хорошо бы главную функцию переименовать (для совместимости можно псевдоним добавить). Если переименовать сам плагин, его старая версия останется лежать мусором, к сожалению, тоталовский инсталлятор плагинов не умеет удалять файлы.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Mar 08, 2019 18:42    Post subject: Reply with quote

Loopback
За мусором каждый сам должен следить. Это по сути то же самое, что устанавливать новый плагин, не удалив уже ненужный аналог.
Да и у первых версий тоже не было приставки Autorun_.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
rk2019



Joined: 01 Mar 2019
Posts: 16
Location: Moskov

Post (Separately) Posted: Fri Mar 08, 2019 22:31    Post subject: Reply with quote

Loopback

Извините, что вмешиваюсь. Я очень рад, что тотал развивается и такие важные функции появляются, но я 20 лет работал не зная этих функций и сегодня - они мне не нужны, только мозолят глаза.



Я очень благодарен чудной версии от 4 марта, которая наконец вернула узкие диалоги в ТС 8.52а. Не сочтите за наглость, спросить как убрать нахрен выделенные красным пункты?
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Mar 09, 2019 07:03    Post subject: Reply with quote

rk2019
Сместить их на сотню-другую пикселей вправо /X-ключом такая уж проблема? В случае кнопки [+] достаточно просто занулить ширину: /W:0. Указания контролов я вам давал в примере под спойлером. Учитесь решать подобные вопросы самостоятельно, тем более что выглядят они как откровенное издевательство на диалогом — особенно в отношении весьма и весьма полезной кнопки [+].
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10418
Location: Россия, Саратов

Post (Separately) Posted: Sat Mar 09, 2019 08:22    Post subject: Reply with quote

Loopback
Flasher
Насчёт новых реалий — я бы название не трогал. Намёк на изменения содержимого окон достаточно адкватен, а привязки к конкретному диалогу там и нет. В конце концом, и TWinKey, например, получил когда-то название по одной конкретной функции, далеко впоследствии не главной...

rk2019
Вы уже отняли у участников этой темы непомерно много времени на удовлетворение своих прихотей. Дальше — самостоятельно. Тем более при такой наглядной демонстрации непонимания и незнания современных возможностей TC и нежелания этому учиться. Про кнопку вам ответили, а скрытие опции для проверки и так предусмотрено штатно: прочитайте в справке описание ключа VerifyEnabled.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3 ... 89, 90, 91 ... 191, 192, 193  Next
Page 90 of 193

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group