View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001678 | Wishes | Macro | public | 2011-01-19 00:58 | 2017-11-27 10:38 |
Reporter | Raistlin | Assigned To | |||
Priority | normal | Severity | feature | Reproducibility | have not tried |
Status | closed | Resolution | fixed | ||
Fixed in Version | 3.0 | ||||
Summary | 0001678: Тихое поведение panel.setpath() при несуществующем пути | ||||
Description | Добавить в синтаксис panel.setpath() параметр Mode: E=panel.setpath(panelType,path[,filename[,Mode]]) Mode=1: выдавать сообщение об ошибке, если path не существует Mode=0: не выдавать сообщение об ошибке | ||||
Tags | No tags attached. | ||||
Build | 5100 | ||||
|
А вы пробовали предварительно воспользоваться panel.exist()? |
|
Так panel.exist() смотрит-то только в текущую папку. Конечно, можно разбить путь на куски и переходить по шагам, начиная от корня и проверяя существование каждого каталога в цепочке, но это IMHO способ для тех пионеров, которые без трудностей не могут. Остальным предлагаемый параметр пригодится. |
|
Может лучше тогда усовершенствовать panel.exist()? Либо релизовать этот режим в более общем виде, посредством mmode(x,y). P.S. А для пионеров простор для деятельности велик, например существование пути в реестре можно проверить с помощью reg.exe ;-) |
|
panel.exist() возвращает индекс элемента, как это совместить с таким усовершенствованием? mmode() - годный вариант, но с mmode() пока и так достаточно проблем, я открывал инцидент на эту тему. IMHO подобные функции вообще не должны интерактивно взаимодействовать с пользователем, на это есть msgbox(). Так что, возможно, не стоит городить огород с новым параметром, а просто изменить поведение функции. Тут еще одна проблема - panel.setpath(), я так понимаю, вообще не работает с плагинами. Например, если запустили RegistryBrowser: macro:post panel.setpath(0,"HKEY_CURRENT_USER\\Console") возвращает ошибку, хотя cd HKEY_CURRENT_USER\Console работает. Еще один инцидент?.. |
|
Так же можно воспользоваться fexist. Но доп. параметер к panel.setpath удобнее. |
|
> Так же можно воспользоваться fexist То же самое - не работает с плагинами. Наверное, и не должно. |
|
>panel.exist() возвращает индекс элемента, как это совместить с таким усовершенствованием? Например panel.exist() в этом случае может открывать нужный путь. Но это конечно криво, не надо этого. >Тут еще одна проблема - panel.setpath(), я так понимаю, вообще не работает с плагинами Тогда нет смысла в Mode. |
|
>0 Гениально. И как тогда различать существование и несуществование? >Тогда нет смысла в Mode. В Mode действительно нет смысла - надо сделать так, чтобы panel.setpath() об ошибках сообщала только возвращаемым значением. Независимо от того, работает она с плагинами или нет. |
|
>Гениально. И как тогда различать существование и несуществование? 0 это и есть несуществование. (Нумерация элементов начинается с 1) А вообще перечитайте цитируемое, оно поменялось. >надо сделать так, чтобы panel.setpath() об ошибках сообщала только возвращаемым значением Попробуйте помыслить шире: ведь panel.setpath наверняка не одна такая. Нужно какое-то общее решение, не добавлять же повсюду параметр Mode. |
|
Так я и мыслю шире: никакая функция, кроме msgbox(), не должна взаимодействовать с пользователем путем выдачи сообщений. |
|
Разумно, значит тикет должен быть в общем виде, а не только про setpath. |
|
Помечаю отработанным и открываю новый? |
|
Подождём что другие скажут. Лично я ничего не имею против молчаливого поведения функции, без всяких дополнительных параметров, ибо лишние опции вредны. |
|
+1 за молчаливое поведение. Если программист хочет видеть ошибки - msgbox в его распоряжении. |
Date Modified | Username | Field | Change |
---|---|---|---|
2011-01-19 00:58 | Raistlin | New Issue | |
2011-01-19 11:12 | JohnDoe | Note Added: 0006194 | |
2011-01-19 12:03 | Raistlin | Note Added: 0006198 | |
2011-01-19 12:31 | JohnDoe | Note Added: 0006200 | |
2011-01-19 13:12 | Raistlin | Note Added: 0006201 | |
2011-01-19 13:13 | Raistlin | Note Edited: 0006201 | |
2011-01-19 13:18 | Denis | Note Added: 0006202 | |
2011-01-19 13:20 | Raistlin | Note Added: 0006203 | |
2011-01-19 13:41 | JohnDoe | Note Added: 0006204 | |
2011-01-19 13:45 | JohnDoe | Note Edited: 0006204 | |
2011-01-19 13:45 | Raistlin | Note Added: 0006205 | |
2011-01-19 14:45 | JohnDoe | Note Added: 0006206 | |
2011-01-19 14:49 | Raistlin | Note Added: 0006207 | |
2011-01-19 14:50 | Raistlin | Note Edited: 0006207 | |
2011-01-19 15:03 | JohnDoe | Note Added: 0006208 | |
2011-01-19 15:05 | Raistlin | Note Added: 0006209 | |
2011-01-19 15:07 | JohnDoe | Note Edited: 0006208 | |
2011-01-19 15:07 | JohnDoe | Note Edited: 0006208 | |
2011-01-19 15:08 | JohnDoe | Note Added: 0006210 | |
2011-01-19 15:11 | Denis | Note Added: 0006211 | |
2013-02-03 00:34 | alexy | Severity | minor => feature |
2017-11-27 09:45 | DrKnS | Status | new => closed |
2017-11-27 09:45 | DrKnS | Resolution | open => fixed |
2017-11-27 09:45 | DrKnS | Fixed in Version | => 3.0 |
2017-11-27 09:45 | DrKnS | Build | => 5100 |
2017-11-27 10:38 | JohnDoe | Relationship added | related to 0002406 |