[CDR 2022] Получить значение ReferencePoint

Drawer

Участник
Сообщения
1 755
Реакции
775
да толку где его нажимать на панели или под мышкой. если он в макрос это значение не передает. не меняет от ActiveDocument.ReferencePoint
Вот Вы упертый, а проверить?:)
Код:
  Application.FrameWork.Automation.Invoke "e6644135-9dab-4935-8ab9-fc85527810ca"
  Application.FrameWork.Automation.Invoke "6ae897fd-2eab-4dad-b172-f4fb768c273e"
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
да толку где его нажимать на панели или под мышкой. если он в макрос это значение не передает. не меняет от ActiveDocument.ReferencePoint
То ли вы как то туго соображаете, то ли мы на другом языке обьясняем. '))'
Вам уже по второму кругу в данном топике обьясняют, как можно получить значение переключателя, меняя его и рисуя фигуры, а вы никак не поймете.
 

DukereD

макрософил
Топикстартер
Сообщения
458
Реакции
111
То ли вы как то туго соображаете, то ли мы на другом языке обьясняем. '))'
Вам уже по второму кругу в данном топике обьясняют, как можно получить значение переключателя, меняя его и рисуя фигуры, а вы никак не поймете.
я хочу напрямую получить значение а не танцами с бубнами макросом "нажимая" кнопки.
 

Drawer

Участник
Сообщения
1 755
Реакции
775
я хочу напрямую получить значение а не танцами с бубнами макросом "нажимая" кнопки.
Тогда пишите в СпортЛото поддержку Corel, они обязательно прислушаются и сделают доступ из скрипта к значениям всех нативных панелей '))' Я сильно сомневаюсь, что такое есть, и скриптонаписателям часто приходило в голову использовать нативные панели для управления своими макросами :) Более того, таких переключателей в нативном докере несколько, они также не связаны с панелью transform :)
 
Последнее редактирование:

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
я хочу напрямую получить значение а не танцами с бубнами макросом "нажимая" кнопки.
Ну дык отсутствие прямого способа было очевидно с первого сообщения. Вам тут косвенные предлагают, а вы делаете вид, что не понимаете.
 

eugeny

15 лет на форуме
Сообщения
855
Реакции
210
да не. в целом удобней код пишется и все аналогичные стандартные функции работают. пока не заметил рудиментарности никакой. а главное скорость работы в разы быстрей VBA. и с памятью лучше работает. переписал с VBA на JS одну рекурсивную функцию. где VBA уже споткнулся от количества самопересечений JS норм работает.
Про скорость что-то совсем интересное говорите. Читал на форуме люди тесты запускают и потом делятся результатами. Так там у многих складывается 100% подозрение, что весь JS-код интерпретируется в VBA. '))'
Я в основном программирую на JS, не фанат VBA. Но если "VBA уже споткнулся от количества самопересечений", то у вас ошибка в коде. :)
 
Последнее редактирование:

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Про скорость что-то совсем интересное говорите. Читал на форуме люди тесты запускают и потом делятся результатами. Так там у многих складывается 100% подозрение, что весь JS-код интерпретируется в VBA. '))'
Там немного другой расклад. VBA исполняет компилированный байткод, а у кореловского js такого нет, это не адоба.
 

eugeny

15 лет на форуме
Сообщения
855
Реакции
210
Там немного другой расклад. VBA исполняет компилированный байткод, а у кореловского js такого нет, это не адоба.
Но быстрее же не может быть? Я хотел для Корела писать на JS, но остановился на ВБА, ввиду как раз результатов тестов с форума. Там и тестировали на многократных рекурсиях. Закладки нет, но думаю, на форуме можно найти по этой теме.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
Но быстрее же не может быть? Я хотел для Корела писать на JS, но остановился на ВБА, ввиду как раз результатов тестов с форума. Там и тестировали на многократных рекурсиях. Закладки нет, но думаю, на форуме можно найти по этой теме.
Там даже не в скорости дело. Поддержка js делалась на отшибись, поэтому совместимость с VBAшной моделью урезанная и местами глючит, об этом тоже писали
 

DukereD

макрософил
Топикстартер
Сообщения
458
Реакции
111
Но быстрее же не может быть? Я хотел для Корела писать на JS, но остановился на ВБА, ввиду как раз результатов тестов с форума. Там и тестировали на многократных рекурсиях. Закладки нет, но думаю, на форуме можно найти по этой теме.
именно рекурсия там и используется. один и тот же код на ВБА и ЖС. вба пишет out of stock а JS работает. по скорости перебирания объектов ява тоже быстрей.
 

Старкрафт

Участник
Сообщения
289
Реакции
106
по скорости перебирания объектов ява тоже быстрей
Не исключено, что так и есть. Попробовал скриптом VBA и JS создать пару тыс прямоугольников произвольного цвета, размера и положения. Тестировал трижды и все три раза js делал быстрее, но не критично. 40 сек vs 42 сек или 30 сек vs 35 сек.
В принципе, тут выкладывали код для ускорения VBA-макросов, типа блок вначале выполнения и в конце. Помню, что действительно ускоряло. В былые дни. Сейчас заморачиваться не стал. Секундой больше или меньше, всё равно ничего не решает. К тому же, есть подозрение, что так и должно быть, потому что VBA поддерживает полноценный COM ActiveX и прочие фичи от M$. И это, вроде как, и должно выполняться медленнее.
 
Последнее редактирование:

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 138
Реакции
10 835
А что, корел сделал полноценный отладчик для js, как ESTK или VBA?
 

DukereD

макрософил
Топикстартер
Сообщения
458
Реакции
111
тут еще возможно то, что панель написана как веб-страничка. и у нее свой обработчик и яваскрипта и браузера в частности может по другому работать в отличии от простого скрипта
 

eugeny

15 лет на форуме
Сообщения
855
Реакции
210
Не исключено, что так и есть. Попробовал скриптом VBA и JS создать пару тыс прямоугольников произвольного цвета, размера и положения. Тестировал трижды и все три раза js делал быстрее, но не критично. 40 сек vs 42 сек или 30 сек vs 35 сек.
В принципе, тут выкладывали код для ускорения VBA-макросов, типа блок вначале выполнения и в конце. Помню, что действительно ускоряло.
Код:
Optimization = True
EventsEnabled = False
В былые дни. Сейчас заморачиваться не стал. Секундой больше или меньше, всё равно ничего не решает. К тому же, есть подозрение, что так и должно быть, потому что VBA поддерживает полноценный COM ActiveX и прочие фичи от M$. И это, вроде как, и должно выполняться медленнее.
В свое время хотел один инструмент использовать в своих целях, а он оказывается фича M$.
 
  • Спасибо
Реакции: Старкрафт

dastin

Некромант-любитель
12 лет на форуме
Сообщения
2 131
Реакции
2 027
не забудем и ещё пару строк
ActiveDocument.SaveSettings
ActiveDocument.RestoreSettings

если до смены ActiveDocument.ReferencePoint вставить в код первую, а на выходе из кода вторую, то всё вернётся как было.
На иконку в ProperiesBar правда это никак не повлияет. Однако, если проконтролировать ReferencePoint чем-то типа

Dim OrigRP As cdrReferencePoint
OrigRP = ActiveDocument.ReferencePoint
...
MsgBox OrigRP
то видно - как меняется и возвращается
 
  • Спасибо
Реакции: _MBK_ и Старкрафт

DukereD

макрософил
Топикстартер
Сообщения
458
Реакции
111
в общем не прокатывает вариант с
host.FrameWork.Automation.InvokeItem("e6644135-9dab-4935-8ab9-fc85527810ca");
host.FrameWork.Automation.InvokeItem("6ae897fd-2eab-4dad-b172-f4fb768c273e");
его невозможно запихнуть в BeginCommanGroup
и если пользователь нажимает Ctrl+Z то начинается показываться объект который зеркалился (
нужно другое решение.