View Issue Details

IDProjectCategoryView StatusLast Update
0002586Far ManagerPlugins API.Dialogpublic2014-04-09 11:07
ReporterJohnDoe Assigned Tovskirdin  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Product Version3.0 
Fixed in Version3.0 
Summary0002586: События: нет возможности отследить открытие комбобокса
DescriptionДля проверки открыт ли комбобокс служит сообщение DM_GETDROPDOWNOPENED
Эту проверку требуется привязать к характерному событию.
Подходящими выглядят только DN_GOTFOCUS или DN_CONTROLINPUT, однако в момент открытия комбобокса они не срабатывают.

Предлагаю после открытии комбобокса отправлять DN_GOTFOCUS
Steps To ReproduceEvent {
  group="DialogEvent";
  condition=function(Event,param)
    return far.SendDlgMessage (param.hDlg, F.DM_GETDROPDOWNOPENED)>0
  end;
  action=function(Event,param)
    far.Text(1,0,1,param.Msg)
    mf.waitkey()
  end;
}
Установив это обработчик надо открыть к примеру диалог создания папки (F7).
Перейдя к полю комбобокса нажмём CtrlDown.
В этот момент придёт 4100 (DN_CTLCOLORDLGLIST) и ничего более.
TagsNo tags attached.
Build3838

Activities

JohnDoe

2014-01-29 21:53

updater   bugnote:0011797

В начале "Steps To Reproduce" должна быть строка:
local F = far.Flags

vskirdin

2014-03-20 13:33

administrator   bugnote:0011997

Нужен DN_DROPDOWNOPENED? (какие Param1 и Param2?)

vskirdin

2014-03-20 13:54

administrator   bugnote:0011998

И да, поясни для чего тебе нужен DN_DROPDOWNOPENED и когда он должен приходить (преполагаю, что сразу как только открываем комбобокс).
Кстати, вот так пойдет: Param1=ID, Param2=1 - открыли, 0-закрыли?

JohnDoe

2014-03-20 14:14

updater   bugnote:0012000

Last edited: 2014-03-20 14:20

>для чего тебе нужен DN_DROPDOWNOPENED
В условиях тикета речь не шла о DN_DROPDOWNOPENED, но да, это решило бы мою проблему.
Требовалось отследить открытие комбобокса для того чтобы автоматически включить в нём фильтр. Param1/2 подходящие.
По идее первый раз должно приходить после открытия, а второй раз не знаю даже когда...
Может быть пока не реализовывать событие при закрытии, подожать пока будет какой-то сценарий практического использования.

P.S.
И следует также предусмотреть это событие и при открытии Историй текстбоксов, и списков Автодополнения (надо ещё подумать, они ведь реализованы как самостоятельные диалоги).

NightRoman

2014-03-20 14:32

reporter   bugnote:0012002

Наверное, надо бы 2 события DN_DROPDOWNOPENING (еще не открыт, но собирается) & DN_DROPDOWNOPENED (открыт). Зачем DN_DROPDOWNOPENING? Например, есть большой список данных, а используется редко. Каждый раз наполнять комбобокс нерационально. Хотелось бы иметь возможность заполнить в момент DN_DROPDOWNOPENING.

Или уже есть такая возможмость в АПИ. Я как-то смотрел и вроде не нашел. Но мог и проглядеть.

JohnDoe

2014-03-20 14:36

updater   bugnote:0012003

>DN_DROPDOWNOPENING
Или DN_DROPDOWNOPENED может приходить в обоих случаях, а различать можно по Param2

vskirdin

2014-03-20 14:53

administrator   bugnote:0012004

DN_DROPDOWNOPENED когда должен приходить? Или... между чем и чем? Перед чем?

Я пока поставил перед DN_CTLCOLORDLGLIST и после закрытия комбо, но до отрисовки элемента.

vskirdin

2014-03-26 13:34

administrator   bugnote:0012037

Подробности будут или Инц отработан?

JohnDoe

2014-03-26 13:48

updater   bugnote:0012039

Комп полетел, отчитаюсь как только восстановлю.

vskirdin

2014-04-01 06:52

administrator   bugnote:0012070

Комп восстановил?

JohnDoe

2014-04-09 09:20

updater   bugnote:0012180

Last edited: 2014-04-09 09:23

Всё Оk, закрываем.

P.S.
В энциклопедии:
Param1 - ID элемента диалога, который будет отрисован.

Наверно не "отрисован", а "раскрыт/закрыт" (не знаю корректно ли так выразится по отношению к тексбоксу)

Issue History

Date Modified Username Field Change
2014-01-29 21:26 JohnDoe New Issue
2014-01-29 21:53 JohnDoe Note Added: 0011797
2014-03-20 13:33 vskirdin Note Added: 0011997
2014-03-20 13:54 vskirdin Note Added: 0011998
2014-03-20 14:14 JohnDoe Note Added: 0012000
2014-03-20 14:16 JohnDoe Note Edited: 0012000
2014-03-20 14:19 JohnDoe Note Edited: 0012000
2014-03-20 14:20 JohnDoe Note Edited: 0012000
2014-03-20 14:32 NightRoman Note Added: 0012002
2014-03-20 14:36 JohnDoe Note Added: 0012003
2014-03-20 14:53 vskirdin Note Added: 0012004
2014-03-26 13:34 vskirdin Note Added: 0012037
2014-03-26 13:48 JohnDoe Note Added: 0012039
2014-04-01 06:52 vskirdin Note Added: 0012070
2014-04-09 09:20 JohnDoe Note Added: 0012180
2014-04-09 09:23 JohnDoe Note Edited: 0012180
2014-04-09 11:07 vskirdin Build => 3838
2014-04-09 11:07 vskirdin Status new => closed
2014-04-09 11:07 vskirdin Assigned To => vskirdin
2014-04-09 11:07 vskirdin Resolution open => fixed
2014-04-09 11:07 vskirdin Fixed in Version => 3.0