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

  • Автор темы Автор темы DukereD
  • Дата начала Дата начала
и еще прикол.. )))

Код:
    ActiveDocument.Unit = cdrMillimeter
    Set s = ActiveLayer.CreateEllipse2(0, 0, 100)
    sx = s.CenterX
    sy = s.CenterY
    
    Application.FrameWork.Automation.Invoke "e6644135-9dab-4935-8ab9-fc85527810ca"
    Application.FrameWork.Automation.Invoke "6ae897fd-2eab-4dad-b172-f4fb768c273e"
    MsgBox sx & " " & sy
    ex = s.CenterX
    ey = s.CenterY
    MsgBox ex & " " & ey
    Debug.Print ex & " " & ey

если убрать первый MsgBox то второй выдаст нули хотя круг и сместился.
в общем совсем не вариант Invoke использовать
 
и еще прикол.. )))
Есть такое :)
Код:
ActiveDocument.Unit = cdrMillimeter
    Set s = ActiveLayer.CreateEllipse2(0, 0, 100)
    sx = s.CenterX
    sy = s.CenterY
  
    Application.FrameWork.Automation.Invoke "e6644135-9dab-4935-8ab9-fc85527810ca"
    Application.FrameWork.Automation.Invoke "6ae897fd-2eab-4dad-b172-f4fb768c273e"
    MsgBox sx & " " & sy
    ex = s.CenterX
    ey = s.CenterY
    MsgBox ex & " " & ey
    ex = s.CenterX
    ey = s.CenterY
    MsgBox ex & " " & ey
    Debug.Print ex & " " & ey
Тут третий алерт выдаст правильное значение :) А значит проблема в том, что в процессе работы скрипта не обновляется информация о координатах после зекалирования... как побороть хз :) Я в кореле не силен:)
 
Последнее редактирование:
вот еще забавное поведение

 
вот еще забавное поведение
А можно словами, так лень всматриваться :) Если Вы о том, что если было выделение и скрипт эти объекты тоже отзеркалит, то я бы не сказал что это большая проблема :)
 
в процессе работы скрипта не обновляется информация о координатах
Скорее всего из-за того, что интерфейс и скрипт работают в разных контекстах /потоках, не успевает информацию обновлять.
 
Скорее всего из-за того, что интерфейс и скрипт работают в разных контекстах /потоках, не успевает информацию обновлять.
Вопрос как с этим бороться? :) В иллюстраторовском скриптинге при всей его ограниченности redraw () позволяет вывернуться, неужели тут нет подобного?
 
А можно словами, так лень всматриваться :) Если Вы о том, что если было выделение и скрипт эти объекты тоже отзеркалит, то я бы не сказал что это большая проблема :)
словами это сложно объяснить. )
 
Скорее всего из-за того, что интерфейс и скрипт работают в разных контекстах /потоках, не успевает информацию обновлять.
Invoke вызывает метод нажатия на контрол напрямую, в обход автоматизации. Я уже как то здесь говорил, это, примерно, как через AHK кнопку нажать
 
Invoke вызывает метод нажатия на контрол напрямую, в обход автоматизации. Я уже как то здесь говорил, это, примерно, как через AHK кнопку нажать
понятное дело, но как в итоге быть. исходный вопрос не решен )
мне сразу эти костыли не понравились.
 
метод нажатия на контрол напрямую, в обход автоматизации.
На да, поэтому их сложно синхронизировать, и ставят костыли в виде таймеров с запасом и всяких рефрешев, обратной связи никакой.
исходный вопрос не решен
winApi поможет, но Вам не нравится.
 
На да, поэтому их сложно синхронизировать, и ставят костыли в виде таймеров с запасом и всяких рефрешев, обратной связи никакой.

winApi поможет, но Вам не нравится.
очень не нравится. не хочу ничего внешнего подключать, да и к тому же это на vba писать придется что тем более не вариант