Latest post of the previous page:
Не стоит мудрить. Надо молча обрезать пока не останется ".."Path\.. это кому вообще понадобиться такое?
Опционально можно сделать запрос на изменение.
Latest post of the previous page:
Не стоит мудрить. Надо молча обрезать пока не останется ".."Это как?Kildor wrote:Так, а path/second/.. во что превратится? Хотелось бы в корректное path
Надо предусмотреть возможность "отключения" плагина. Например, если диалог закрывается не по Enter, а по Ctrl-Enter, или по хоткею.Kildor wrote:(а откуда может проявиться — например из макроса, где чтоб не создавать неестественный интеллект, просто работать влоб).
Это подозрение ошибочно. Я попробовал сделать копию и издеваться над ней - результат тот же: пустая строка в PtrData тупо игнорируется.Shmuel wrote:У меня подозрение, что странное поведение DM_SETDLGITEM объясняется модификацией плагином блока памяти, на которую указывает PtrData.
Это ещё почему? Far заливает содержимое PtrData в память сразу после конца структуры FarDialogItem (собственно говоря, для этого и приходится сначала выяснять объём потребной памяти, который зависит от длины строки). Далее - это уже целиком и полностью моя строка.Shmuel wrote:PtrData - это указатель типа const wchar_t*, видимо так делать нельзя.
А вот это - да! Работает корректно. Переделаю. Мерси!Shmuel wrote:Поэтому лучше было бы воспользоваться DM_SETTEXT.
Начиная с v1.2 останется без изменений.Kildor wrote:Так, а path/second/.. во что превратится?
Я даже не буду спрашивать, а как плагину догадаться, что Вы хотите убить всё, что правее. Но скажите мне, а на хрена такие грабли разбрасывать?Kildor wrote:Хотелось бы в корректное path
Вообще-то он замечательно "отключается", если имя взято в кавычки. Ну, для путей ещё можно лепить в конец косую черту.John Doe wrote:Надо предусмотреть возможность "отключения" плагина.
Это идеологически неправильно. Если отрабатывается событие, то именно событие, а не способ, которым оно возникло. Пользователь мог и мышкой кликнуть, и макрос вызвать, эмулирующий нажатие клавиши... На каждый чих не наздравствуешься.John Doe wrote:Например, если диалог закрывается не по Enter, а по Ctrl-Enter, или по хоткею.
Да, я уже тоже успел это проверить.Тигрёнок wrote:Это подозрение ошибочно. Я попробовал сделать копию и издеваться над ней - результат тот же: пустая строка в PtrData тупо игнорируется.
Видимо так, но это не документировано. Указатель всё равно типа const.Тигрёнок wrote:Far заливает содержимое PtrData в память сразу после конца структуры FarDialogItem (собственно говоря, для этого и приходится сначала выяснять объём потребной памяти, который зависит от длины строки). Далее - это уже целиком и полностью моя строка.
Установил, куда они откатываются: на последний элемент истории эдит-контрола. То-есть, если удалить последний (верхний) элемент в выпадающем списке (Shift-Del), то в дальнейшем откат произойдёт на тот элемент, который станет последним. Это конечно баг.Тигрёнок wrote:если по DM_SETDLGITEM подаётся пустая строка, то оно просто не отрабатывается FAR'ом... Более того, если сделать несколько изменений, то в ответ на передачу после них пустой строки, они откатятся.
DlgGuid.hpp wrote:// {431A2F37-AC01-4ecd-BB6F-8CDE584E5A03}
DEFINE_GUID(MoveFilesId,0x431a2f37,0xac01,0x4ecd,0xbb,0x6f,0x8c,0xde,0x58,0x4e,0x5a,0x3);
Это какой-то секретный хедер или он или простым людЯм доступен? И вообще, от какого он билда? От 1662 или от более младших?John Doe wrote:DlgGuid.hpp wrote:// {431A2F37-AC01-4ecd-BB6F-8CDE584E5A03}
DEFINE_GUID(MoveFilesId,0x431a2f37,0xac01,0x4ecd,0xbb,0x6f,0x8c,0xde,0x58,0x4e,0x5a,0x3);