View Issue Details

IDProjectCategoryView StatusLast Update
0003034PluginsLuaMacro / Macro Browserpublic2018-05-12 14:25
ReporterJohnDoeAssigned To 
PrioritynormalSeverityminorReproducibilityalways
Status newResolutionopen 
Product Version3.0 
Target VersionFixed in Version 
Summary0003034: LuaFAR: SendDlgMessage работает не со всеми событиями/сообщениями
DescriptionСогласно энциклопедии, в параметре Msg можно указывать события и сообщения.

В LuaFAR не реализована отправка сообщений с кодом>DM_USER, и событий (все DN_*).
Additional Informationhttp://api.farmanager.com/ru/service_functions/senddlgmessage.html
http://forum.farmanager.com/viewtopic.php?p=131593#p131593
TagsNo tags attached.

Activities

shmuel

2015-09-16 12:15

developer   bugnote:0013891

Вот я сейчас поигрался с отправкой Фару DN_xxx сообщений и что-то не вижу смысла в этом.
Что происходит: Фар перевызывает диалоговую процедуру с теми же параметрами, что были переданы в SendDlgMessage(hDlg, DN_xxx, Param1, Param2).
Что нам даёт этот пинг-понг, реально?

JohnDoe

2015-09-16 12:18

updater   bugnote:0013892

>Фар перевызывает диалоговую процедуру с теми же параметрами
1. некоторые сообщения обрабатываются прямо в SendDlgMessage.
2. возможность отправить сообщение в чужую процедуру

shmuel

2015-09-16 12:30

developer   bugnote:0013893

> 1. некоторые сообщения обрабатываются прямо в SendDlgMessage.

Не понял.

JohnDoe

2015-09-16 12:34

updater   bugnote:0013894

Last edited: 2015-09-16 12:34

View 2 revisions

/* $ 28.07.2000 SVS
   ѕосылка сообщени€ диалогу
   Ќекоторые сообщени€ эта функци€ обрабатывает сама, не передава€ управление
   обработчику диалога.
*/
http://sourceforge.net/p/farmanager/code/HEAD/tree/trunk/unicode_far/dialog.cpp#l4707

shmuel

2015-09-16 12:38

developer   bugnote:0013895

То, что в исходниках, для нас не руководство. Этого нет в документации.

JohnDoe

2015-09-16 12:43

updater   bugnote:0013896

Ok

shmuel

2015-09-16 12:43

developer   bugnote:0013897

> 2. возможность отправить сообщение в чужую процедуру

То-есть, действовать на авось, ибо мы не знаем наверняка, что в этой чужой процедуре может быть наворочено.

JohnDoe

2015-09-16 12:45

updater   bugnote:0013898

Last edited: 2015-09-16 12:46

View 2 revisions

В общем случае не знаю, в Энциклопедии речь скорее о пользовательских сообщениях.

shmuel

2015-09-16 12:50

developer   bugnote:0013899

Реализовать в LuaFAR отправку сообщений DN_xxx несложно для тех DN_xxx, где Param2 - число. Но там, где указатель на структуру - это изрядная работа, для которой нужна мотивация.

Что касается DM_USER, DM_USER+1, ... - мне тоже непонятно, что это нам может реально дать.

JohnDoe

2015-09-16 12:55

updater   bugnote:0013900

Last edited: 2015-09-16 12:55

View 2 revisions

>Но там, где указатель на структуру - это изрядная работа, для которой нужна мотивация.
Вопрос к специалистам, я как и вы не уверен в необходимости этого.

>Что касается DM_USER, DM_USER+1, ... - мне тоже непонятно, что это нам может реально дать.
Задумка примерно такая:
https://github.com/trexinc/evil-programmers/tree/master/listboxex

shmuel

2015-09-16 16:07

developer   bugnote:0013901

> Задумка примерно такая:
> https://github.com/trexinc/evil-programmers/tree/master/listboxex

Насколько я понимаю, эту задумку (а также и поддержку DN_xxx) можно реализовать и без изменений в LuaFAR.
Просто вместо far.SendDlgMessage(...) вызывать напрямую DlgProg(...) - рекурсивный вызов.

JohnDoe

2015-09-16 16:08

updater   bugnote:0013902

>вызывать напрямую DlgProg(...) - рекурсивный вызов.
Это как?

shmuel

2015-09-16 16:14

developer   bugnote:0013903

Ну вот вы хотели бы вызвать far.SendDlgMessage(hDlg, F.DN_BTNCLICK, 5, 1), но LuaFAR это не поддерживает, выдаёт ошибку.

Вместо этого вы вызываете DlgProc(hDlg, F.DN_BTNCLICK, 5, 1).

JohnDoe

2015-09-16 16:22

updater   bugnote:0013904

Я полагал что под DlgProc в Энциклопедии подразумевается приватная функция плагина, с которой у прочих плагинов нет иного способа взаимодействия, кроме как через SendDlgMessage.

shmuel

2015-09-16 16:27

developer   bugnote:0013905

Речь идёт о своей диалоговой процедуре, а не о чужой.
Здесь же по вашей ссылке (https://github.com/trexinc/evil-programmers/tree/master/listboxex) работа идёт со своей процедурой, не так ли?

JohnDoe

2015-09-16 16:35

updater   bugnote:0013906

>со своей процедурой, не так ли?
Выходит я пребывал в заблуждении, полагая что DM_USER можно использовать для межплагинного взаимодействия.

Зачем тогда существует DM_USER, если без него можно обойтись.
Пора спрашивать zg.

shmuel

2018-05-12 00:54

developer   bugnote:0016090

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

JohnDoe

2018-05-12 13:32

updater   bugnote:0016092

Лично я в этом вопросе некомпетентен, но опасаюсь что так можно нечаянно зарыть полезный функционал доступный в АПИ плагинов.

https://github.com/trexinc/evil-programmers/search?utf8=%E2%9C%93&q=DM_USER&type=
DM_USER встречается 30 раз

shmuel

2018-05-12 13:43

developer   bugnote:0016094

> Лично я в этом вопросе некомпетентен

Задача убедить разработчика что-то добавить или изменить лежит на создателе тикета.
Вам должно быть не сложно приобрести компетенцию в данном конкретном вопросе.
Нужен всего-навсего реальный пример полезности этой фичи. Иначе нет смысла что-то делать.

JohnDoe

2018-05-12 14:21

updater   bugnote:0016096

shmuel wrote

Нужен всего-навсего реальный пример полезности этой фичи. Иначе нет смысла что-то делать.
Согласен.

Прямо сейчас заняться этим возможности у меня нет, но пока определённости нет, тикет предлагаю не закрывать.

shmuel

2018-05-12 14:25

developer   bugnote:0016097

OK.

Issue History

Date Modified Username Field Change
2015-07-28 17:05 JohnDoe New Issue
2015-09-16 12:15 shmuel Note Added: 0013891
2015-09-16 12:18 JohnDoe Note Added: 0013892
2015-09-16 12:30 shmuel Note Added: 0013893
2015-09-16 12:34 JohnDoe Note Added: 0013894
2015-09-16 12:34 JohnDoe Note Edited: 0013894 View Revisions
2015-09-16 12:38 shmuel Note Added: 0013895
2015-09-16 12:43 JohnDoe Note Added: 0013896
2015-09-16 12:43 shmuel Note Added: 0013897
2015-09-16 12:45 JohnDoe Note Added: 0013898
2015-09-16 12:46 JohnDoe Note Edited: 0013898 View Revisions
2015-09-16 12:50 shmuel Note Added: 0013899
2015-09-16 12:55 JohnDoe Note Added: 0013900
2015-09-16 12:55 JohnDoe Note Edited: 0013900 View Revisions
2015-09-16 16:07 shmuel Note Added: 0013901
2015-09-16 16:08 JohnDoe Note Added: 0013902
2015-09-16 16:14 shmuel Note Added: 0013903
2015-09-16 16:22 JohnDoe Note Added: 0013904
2015-09-16 16:27 shmuel Note Added: 0013905
2015-09-16 16:35 JohnDoe Note Added: 0013906
2018-05-12 00:54 shmuel Note Added: 0016090
2018-05-12 13:32 JohnDoe Note Added: 0016092
2018-05-12 13:43 shmuel Note Added: 0016094
2018-05-12 14:21 JohnDoe Note Added: 0016096
2018-05-12 14:25 shmuel Note Added: 0016097