В ИР адаптере есть функция ПерейтиПоСсылкеСтрокиМодуля, в которой я кликаю по строке точки останова в списке точек останова с путем вызова ТурбоКонф.КликнутьПоЭлементу().
Почему то часто это занимает больше секунды.
Воспроизвести можно установив каретку на любой внешний вызов метода общего модуля и нажав CTRL+F12 (ИР Перейти к определению)
Причем и в других командах, где я использовал эту функцию, она тоже так долго работает, особенно в команде "Найти последнее изменение метода" (требуется хранилище конфигурации). Но те команды редко используются. А "Перейти к определению" - часто используемая.
#1, ред. 07 октября 2023 11:01
Аналогичная команда "Перейти к определению" из моей программы ClipAngel почти всегда работает быстрее. Ее исходный код я уже предоставлял тебе.
#2, 07 октября 2023 14:35
(1) tormozit, скинь еще раз свой код, посмотрю.
#3, 07 октября 2023 14:37
Хотя я не использую ТурбоКонф.КликнутьПоЭлементу() в своей версии
#4, 07 октября 2023 15:00
Код открытия строки модуля из ClipAngel
Ссылка скрыта
#5, 07 октября 2023 15:40
Сравнил время перехода функции в скрипте и моей встроенной
В скрипте 3900 мс
Функция ТК
2400 мс
#6, 07 октября 2023 15:41
Время в ClipAngel понятно, замерить не могу. Но в целом в ТК такая же логика.
#7, 07 октября 2023 15:42
Поэтому рекомендую использовать штатную функцию TurboConf, добавлю ее в API
#8, ред. 07 октября 2023 15:51
Я бы давно использовал твою функцию, если бы она была мне доступна. Но еще она должна поддерживать все типы модулей, включая внешние обработки, модули расширений, модули приложения.
#9, 07 октября 2023 15:54
Внешние поддерживает, модули расширений не знаю, но добавить всегда можно.
#10, ред. 08 октября 2023 11:18
Сылка модуля внешней обработки выглядит так
{Ф::C:\TerminalDisk\ОтважныйБобр.epf::ВнешняяОбработкаяяя1.Форма.Форма.Форма(11:Функ,3)}:
Она не поддерживается новой функцией API ОткрытьМодуль(Ссылка). Либо я не понял как ей передать такое имя модуля (по сути имя файла внешней обработки).
Модули расширений тоже не поддерживает. Некорректно работает при первом обращении к модулю и оставляет за собой мусорную точку останова %2FContent%2FFiles%2F1165DFE919CB05373C26DFFD93BA26DF9DD382C5%2FkM9sYriNZN.mp4
По поводу основной проблемы. Функция API КликнутьПоЭлементу() имеет намного более широкий спектр применения чем частное решение ОткрытьМодуль(). И ускорение ее работы (иногда отрабатывает быстро) ускорило бы сразу много команд.
#11, ред. 08 октября 2023 12:28
(10) tormozit, модули расширений поддерживаются, формат - {ИнструментыРазработчикаTormozit ОбщийМодуль.ирКлиент.Модуль(20084)}
Мусорная точка остается, т.к.переход не происходит (по другой причине)
Для внешних обработок нужно будет передать отдельный параметр - путь к файлу
ТурбоКонф.ОткрытьМодуль("{ВнешняяОбработкаяяя1.Форма.Форма.Форма(11)}", "C:\TerminalDisk\ОтважныйБобр.epf");
В следующей версии - добавлю в API
КликнутьПоЭлементу() - скинь свой код клика, в твоем примере есть все, кроме этого. SetFocusByClick(cell) - нет метода.
#12, 08 октября 2023 12:39
Функция SetFocusByClick из ClipAngel
Ссылка скрыта
#13, 08 октября 2023 12:41
На первый взгляд у меня тоже самое.
#14, 08 октября 2023 12:43
Но клик у меня происходит через InputSimulator, может он медленно кликает - проверю.
#15, 08 октября 2023 12:48
Нет, кликает быстро. Но общее время обработки больше секунды. Думаю причина в перехвате событий мыши самим ТК, проверю.
#16, 08 октября 2023 13:03
Да, дело было в этом. При клике срабатывало событие мыши (OnMouseButtonUp), в результате возникала дополнительная задержка на 1000 мс. Теперь время клика сократилось с 1030 мс до 30 мс.
#17, 08 октября 2023 20:13
Проверил. Теперь КликнутьПоЭлементу() работает быстро.
#18, 08 октября 2023 20:14
tormozit изменил статус на Закрыто