TheRenat писал(а):
Ещё похоже есть баг, связанный с тем, что onExecuteEnd вызывается перед любым onExecute (если выбран один файл вне зависимости от того, Select = Multi или Single)Да там такого быть не может, если брать первую твою версию. Это же разные методы работают, в методе Single вообще нет никакого упоминания про onExecuteEnd, как он может срабатывать?
Млин, заставил ты меня проверить твой код в деле. Все у меня прекрасно работает. На одном файле при Multi отрабатывает только onExecute, на множественном: в цикле -- onExecute, в конце цикла -- onExecuteEnd, и только один раз. Я бы вообще сделал, чтобы onExecuteEnd выдавался и на один файл. Вот схема, при множественном выборе список исправно копируется в Memo, при выборе одного файла -- фиг вам, а ведь, КМК, должен.
Схема
Add(MainForm,2953706,196,112)
{
Width=455
link(onCreate,8436208:doExecute,[])
}
Add(ODialog,8436208,266,126)
{
Select=1
Point(onExecuteEnd)
link(onExecute,12424732:doAdd,[])
link(onExecuteEnd,11324573:doData,[(326,146)(326,188)])
}
Add(ListBox,12424732,336,126)
{
Left=10
Top=10
Width=200
Height=220
}
Add(Memo,6918032,399,161)
{
Left=220
Top=10
Width=200
Height=220
}
Add(DoData,11324573,336,182)
{
link(onEventData,6918032:doText,[])
link(Data,12424732:Text,[])
}
Ладно в Simple, там на этапе построения схемы будет известно, что вызывается только один файл, но вот в Multi совершенно не очевидно, что будет выбрано именно несколько файлов. А вот использовать две точки в таком режиме ничего хорошего не дадут, тогда добавленная точка вообще смысла иметь не будет