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

DukereD

макрософил
Топикстартер
Сообщения
462
Реакции
114
и еще прикол.. )))

Код:
    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 использовать
 

Drawer

Участник
Сообщения
1 811
Реакции
797
и еще прикол.. )))
Есть такое :)
Код:
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
Тут третий алерт выдаст правильное значение :) А значит проблема в том, что в процессе работы скрипта не обновляется информация о координатах после зекалирования... как побороть хз :) Я в кореле не силен:)
 
Последнее редактирование:

DukereD

макрософил
Топикстартер
Сообщения
462
Реакции
114
вот еще забавное поведение

 

Drawer

Участник
Сообщения
1 811
Реакции
797
вот еще забавное поведение
А можно словами, так лень всматриваться :) Если Вы о том, что если было выделение и скрипт эти объекты тоже отзеркалит, то я бы не сказал что это большая проблема :)
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851

Drawer

Участник
Сообщения
1 811
Реакции
797

Chiga

15 лет на форуме
Сообщения
802
Реакции
519
в процессе работы скрипта не обновляется информация о координатах
Скорее всего из-за того, что интерфейс и скрипт работают в разных контекстах /потоках, не успевает информацию обновлять.
 

Drawer

Участник
Сообщения
1 811
Реакции
797
Скорее всего из-за того, что интерфейс и скрипт работают в разных контекстах /потоках, не успевает информацию обновлять.
Вопрос как с этим бороться? :) В иллюстраторовском скриптинге при всей его ограниченности redraw () позволяет вывернуться, неужели тут нет подобного?
 

DukereD

макрософил
Топикстартер
Сообщения
462
Реакции
114
А можно словами, так лень всматриваться :) Если Вы о том, что если было выделение и скрипт эти объекты тоже отзеркалит, то я бы не сказал что это большая проблема :)
словами это сложно объяснить. )
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Скорее всего из-за того, что интерфейс и скрипт работают в разных контекстах /потоках, не успевает информацию обновлять.
Invoke вызывает метод нажатия на контрол напрямую, в обход автоматизации. Я уже как то здесь говорил, это, примерно, как через AHK кнопку нажать
 

DukereD

макрософил
Топикстартер
Сообщения
462
Реакции
114
Invoke вызывает метод нажатия на контрол напрямую, в обход автоматизации. Я уже как то здесь говорил, это, примерно, как через AHK кнопку нажать
понятное дело, но как в итоге быть. исходный вопрос не решен )
мне сразу эти костыли не понравились.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851

Chiga

15 лет на форуме
Сообщения
802
Реакции
519
метод нажатия на контрол напрямую, в обход автоматизации.
На да, поэтому их сложно синхронизировать, и ставят костыли в виде таймеров с запасом и всяких рефрешев, обратной связи никакой.
исходный вопрос не решен
winApi поможет, но Вам не нравится.
 

DukereD

макрософил
Топикстартер
Сообщения
462
Реакции
114
На да, поэтому их сложно синхронизировать, и ставят костыли в виде таймеров с запасом и всяких рефрешев, обратной связи никакой.

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