FIN — Fix Incorrect Names

Здесь можно обсудить ваш любимый плагин.
User avatar
Тигрёнок
Posts: 391
Joined: Wed 03 May, 2006 06:07
Location: Россия
Contact:

Re: FIN – Fix Incorrect Names

Post by Тигрёнок »

Latest post of the previous page:

DrKnS wrote:но почему-то почти уверен, что проблема в недостаточно усердном изучении Писания, а именно главы о структуре DialogInfo.
Вот тоже у меня есть подозрения по поводу Писания и структуры DialogInfo. Я вижу, что FAR возвращает мусор в её поле StructSize в ответ на DM_GETDIALOGINFO, хотя согласно Писанию вроде бы должен его заполнять (по крайней мере, в описании DN_GETDIALOGINFO для плагинов это указано как обязательное действие). Такое ощущение, что если StructSize не заполнено, то DM_GETDIALOGINFO просто не отрабатывается (вопреки здравому смыслу и Писанию).
Съешь мыша – стань настоящим клавишником!
Max Rusov
Posts: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 12 times

Re: FIN – Fix Incorrect Names

Post by Max Rusov »

Конфликтует с плагином DialogTools. Без него - работает. Кто виноват - не разбирался.
User avatar
Kerberos464
Posts: 1239
Joined: Wed 29 Jul, 2009 20:24
Location: Saint-Petersburg
Has thanked: 19 times
Been thanked: 1 time

Re: FIN – Fix Incorrect Names

Post by Kerberos464 »

Max Rusov wrote:Конфликтует с плагином DialogTools. Без него - работает. Кто виноват - не разбирался.
точно! выгружаю DialogTools - сразу Fix Incorrect Name начинает работать.
16.09.2012 14:35:28 +0200 - build 2799 - все нативные плагины перестали работать.
30.09.2012 03:26:20 +0200 - build 2851 - все макросы перестали работать.
31.02.2029 25:61:61 +0200 - build 6666 - весь фар перестал работать.
User avatar
Тигрёнок
Posts: 391
Joined: Wed 03 May, 2006 06:07
Location: Россия
Contact:

Re: FIN – Fix Incorrect Names

Post by Тигрёнок »

fibre wrote:о! с этой дллкой - FixIncorrectNames_woutDialogInfo.dll работает!
Кажется, я всё понял. А так (это уже полнофункциональный вариант)?
Attachments
FIN.rar
(8.36 KiB) Downloaded 100 times
Съешь мыша – стань настоящим клавишником!
User avatar
Kerberos464
Posts: 1239
Joined: Wed 29 Jul, 2009 20:24
Location: Saint-Petersburg
Has thanked: 19 times
Been thanked: 1 time

Re: FIN – Fix Incorrect Names

Post by Kerberos464 »

Тигрёнок wrote:Кажется, я всё понял. А так (это уже полнофункциональный вариант)?
работает!
правда, мне это не особо надо, я так, за идею =)
16.09.2012 14:35:28 +0200 - build 2799 - все нативные плагины перестали работать.
30.09.2012 03:26:20 +0200 - build 2851 - все макросы перестали работать.
31.02.2029 25:61:61 +0200 - build 6666 - весь фар перестал работать.
User avatar
NightRoman
Posts: 5950
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 14 times
Been thanked: 15 times
Contact:

Re: FIN – Fix Incorrect Names

Post by NightRoman »

Все, заработало (кажись)! StructSize я не заполнял. Спасибо за наводку, DrKnS.

Хоть я должен был по писанию догадаться, сам виноват, но все ж, напишите там явно, что вызывающий должен заполнить это поле.
User avatar
Тигрёнок
Posts: 391
Joined: Wed 03 May, 2006 06:07
Location: Россия
Contact:

Re: FIN – Fix Incorrect Names

Post by Тигрёнок »

NightRoman wrote:Хоть я должен был по писанию догадаться, сам виноват, но все ж, напишите там явно, что вызывающий должен заполнить это поле.
В том-то и дело, что писание явным образом возлагает заполнение поля на обработчика события DN_GETDIALOGINFO, а не на источник сообщения DM_GETDIALOGINFO...

P.S. Обновил на странице анонса.
Съешь мыша – стань настоящим клавишником!
User avatar
Alexey Samlyukov
Posts: 1760
Joined: Tue 15 Mar, 2005 17:28
Been thanked: 5 times
Contact:

Re: FIN — Fix Incorrect Names

Post by Alexey Samlyukov »

ааа? приводите текст для DN_GETDIALOGINFO и DM_GETDIALOGINFO - впишем его как вы захотите :)
User avatar
Тигрёнок
Posts: 391
Joined: Wed 03 May, 2006 06:07
Location: Россия
Contact:

Re: FIN — Fix Incorrect Names

Post by Тигрёнок »

Alexey Samlyukov wrote:ааа? приводите текст для DN_GETDIALOGINFO и DM_GETDIALOGINFO - впишем его как вы захотите :)
Давайте определимся, что именно не так:
а) в описании DM_GETDIALOGINFO не хватает фразы по типу описания DN_GETDIALOGINFO: "Перед запросом надо корректно заполнить поле StructSize структуры DialogInfo, присвоим ему значение..." (кстати, какое?);
б) для DM_GETDIALOGINFO заполнять StructSize структуры DialogInfo не надо, и то, что оно без такого заполнения не работает, - непорядок.

По мне логичнее вариант "б" и править надо не Писание, а FAR, но, возможно, я не понимаю глубины замысла...
Съешь мыша – стань настоящим клавишником!
User avatar
NightRoman
Posts: 5950
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 14 times
Been thanked: 15 times
Contact:

Re: FIN — Fix Incorrect Names

Post by NightRoman »

Alexey Samlyukov wrote:ааа? приводите текст для DN_GETDIALOGINFO и DM_GETDIALOGINFO - впишем его как вы захотите :)
В DN_GETDIALOGINFO уже есть, цитирую из писания:
Param2
Указатель на структуру DialogInfo, получающую данные. Плагин должен корректно заполнить поле StructSize структуры DialogInfo.
В DM_GETDIALOGINFO ничего не сказано (я и не заполнял, оно и не работало). И в DialogInfo нет, там, может, и не обязательно это писать, но хуже не будет.
User avatar
NightRoman
Posts: 5950
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 14 times
Been thanked: 15 times
Contact:

Re: FIN — Fix Incorrect Names

Post by NightRoman »

В DM_GETDIALOGINFO, наверное, надо заполнять (sizeof этой структуры). Типа так Фар может узнать некий упрощенный вариант "версии" этой структуры у старых плагинов (если я правильно понимаю назначение этой фичи). В том смысле, что структура потом может расширяться, но Фар не будет писать за пределы структуры новые данные для старых плагинов (но это я просто фантазирую, задумка авторов может быть и другой).

А вот зачем плагину заполнять это поле в DN_GETDIALOGINFO, где структуру создает Фар, а не плагин - не совсем понятно. Но раз дока требует, нет вопросов, заполняем. Не надо - напишите, что не надо.
User avatar
Тигрёнок
Posts: 391
Joined: Wed 03 May, 2006 06:07
Location: Россия
Contact:

Re: FIN — Fix Incorrect Names

Post by Тигрёнок »

NightRoman wrote:В DM_GETDIALOGINFO, наверное, надо заполнять (sizeof этой структуры). Типа так Фар может узнать некий упрощенный вариант "версии" этой структуры у старых плагинов (если я правильно понимаю назначение этой фичи). В том смысле, что структура потом может расширяться, но Фар не будет писать за пределы структуры новые данные для старых плагинов (но это я просто фантазирую, задумка авторов может быть и другой).

А вот зачем плагину заполнять это поле в DN_GETDIALOGINFO, где структуру создает Фар, а не плагин - не совсем понятно. Но раз дока требует, нет вопросов, заполняем. Не надо - напишите, что не надо.
Вы полагает, что требование заполнять поле просто попало не в тот раздел Писания?
Съешь мыша – стань настоящим клавишником!
User avatar
NightRoman
Posts: 5950
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 14 times
Been thanked: 15 times
Contact:

Re: FIN — Fix Incorrect Names

Post by NightRoman »

Тигрёнок wrote:Вы полагает, что требование заполнять поле просто попало не в тот раздел Писания?
Нет, но допускаю такую возможность.
User avatar
Alexey Samlyukov
Posts: 1760
Joined: Tue 15 Mar, 2005 17:28
Been thanked: 5 times
Contact:

Re: FIN — Fix Incorrect Names

Post by Alexey Samlyukov »

когда писалось, за основу брался changelog. сейчас глянул код - для DN_GETDIALOGINFO оно не нужно.
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 4 times

Re: FIN — Fix Incorrect Names

Post by Skirda »

Так... разберемся.

DN_* - это фар говорит плагину "дядь, я тут немного диалог инициализирую, хочу у тебя инфу про гуид" (так как фар передает сцылку на свою переменную, то он ее нулями и забивает)
DM_* - а это кто угодно (фар, плагин) другому - "мужик, дай мне гуид вон того диалога, ась?" (как фар может проинициализировать переменную плагина?)
We are the Borg. You will be assimilated.
So Say We All!
User avatar
NightRoman
Posts: 5950
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 14 times
Been thanked: 15 times
Contact:

Re: FIN — Fix Incorrect Names

Post by NightRoman »

оффтопик и немного критика, но...

Может было бы лучше и не вводить эту структуру вообще, надо получить туда\сюда гуид диалога, пусть бы были отдельные команда и сообщение отдельно для гуида, адрес которого передается (и это весьма принятая практика в АПИ Фара). Мелкая гранулярность данных позволяет получить ровно те данные, что нужны, это хорошо - проще АПИ (команд больше, правда), часто более эффективная работа (не обязательно всегда). Фару не надо отрабатывать все эти "версии" структур опять же.

Но я не предлагаю ломать для этого конкретного случая. Сделано, пусть будет. Может, на будущее, типа просьба..

Просто по опыту написания ООП оболочки вокруг Фар (Фарнет) могу сказать, что чем больше структуры несвязанных напрямую данных Фар использует для коммуникации, тем более громоздкая работа получается. Часто эти структуры Фар или плагин обязаны заполнять целиком только из одного реально требуемого данного (но неизвестно какого, конечно, поэтому целиком все и заполняется).
Post Reply

Return to “Обсуждение плагинов”