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

  • Автор темы Автор темы DukereD
  • Дата начала Дата начала

DukereD

макрософил
Топикстартер
Сообщения
502
Реакции
128
Не могу получить значение текущего состояния переключателя ReferencePoint.
Он всегда равен 9 т.е. cdrCenter как бы не кликал на слева сверху переключатель.
да. если задать принудительно, например, ActiveDocument.ReferencePoint = cdrTopLeft оно работает. но хочется чтобы пользователь сам тыкал куда нужно ему.
 
Ну можно попробовать выкрутиться каким нибудь заднепроходным способом - скажем, рисовать временные обьекты, меняя это значение и смотреть полученные координаты. Хотя странно, похоже на баг.
 
не. не получается. как ни переключай все равно PositionX-Y в центре объекта. ((
а нельзя ли как-то "прочитать" кнопку на панели эту?
 
не. не получается. как ни переключай все равно PositionX-Y в центре объекта. ((
а нельзя ли как-то "прочитать" кнопку на панели эту?
А если нарисовать - переключить - снова нарисовать? Оно ж не должно на том же месте нарисовать, по идее?
 
А если нарисовать - переключить - снова нарисовать? Оно ж не должно на том же месте нарисовать, по идее?
если переключать referencepoint макросом, то все норм. работает как нужно. но он не считывает значение "физического" переключателя.. в этом вся беда.
 
Все равно не пойму.
Разве до переключения первый обьект не создается согласно физическому положению референса?
 
Все равно не пойму.
Разве до переключения первый обьект не создается согласно физическому положению референса?
создание объекта к референсу не привязано. рефернс влияет на PositionX (Y) уже существующего объекта и при изменении его размера он будет меняться в сторону согласно референса. НО. если менять размер макросом то физический переключатель вообще игнорируется. в том-то и вся загвоздка. получается что как-бы два рефеернса. физический переключатель влияет на ручное управление объектами а в макросе как бы свой независимый референс.
 
создание объекта к референсу не привязано. рефернс влияет на PositionX (Y) уже существующего объекта и при изменении его размера он будет меняться в сторону согласно референса. НО. если менять размер макросом то физический переключатель вообще игнорируется. в том-то и вся загвоздка. получается что как-бы два рефеернса. физический переключатель влияет на ручное управление объектами а в макросе как бы свой независимый референс.
Гммм, проверить без наличия корела сейчас не могу, однако, в другом референсе (каломбур! '))') приводится вот такой пример кода, который иллюстрирует обратное
 
Гммм, проверить без наличия корела сейчас не могу, однако, в другом референсе (каломбур! '))') приводится вот такой пример кода, который иллюстрирует обратное
так тут все верно оно и будет работать. оно же создает элипс по координатам уже существующего шейпа. т.е. меняя референс мы меняем positionX(Y ) переключая в макросе все работает отлично. но как бы не переключал физически он не влияет на програмный референс. какой макросом задал. такой он и остается.
 
какой макросом задал. такой он и остается.
что вроде как и логично :)
ActiveDocument.ReferencePoint
На панели управляющий элемент вроде как к документу никакого отношения не имеет :)
 
что вроде как и логично :)
ActiveDocument.ReferencePoint
На панели управляющий элемент вроде как к документу никакого отношения не имеет :)
да и фик с ним. весь вопрос в том как получить значения этого переключателя.
 
т.е. меняя референс мы меняем positionX(Y ) переключая в макросе все работает отлично. но как бы не переключал физически он не влияет на програмный референс. какой макросом задал. такой он и остается.
Все равно не понимаю.
Вот такой код
Код:
Dim s As Shape
  Set s = ActiveShape
 
  DrawEllipse s
  ActiveDocument.ReferencePoint = cdrTopRight
  DrawEllipse s
Второй, эллипс естественно, рисуется относительно верхнего правого угла активного шейпа. А первый?
 
Все равно не понимаю.
Вот такой код
Код:
Dim s As Shape
  Set s = ActiveShape
 
  DrawEllipse s
  ActiveDocument.ReferencePoint = cdrTopRight
  DrawEllipse s
Второй, эллипс естественно, рисуется относительно верхнего правого угла активного шейпа. А первый?
а первый рисуется относительно того который был установлен ДО этого. и позиция физического переключателя на это никак не влияет
 
А если он не был установлен? Корел только что загрузили и сразу открыли файл? По идее ж должно быть именно текущее значение загруженного документа как вам и надо. Другое дело, может, оно и вправду с положением галочки в панели не коррелирует
 
А если он не был установлен? Корел только что загрузили и сразу открыли файл? По идее ж должно быть именно текущее значение загруженного документа как вам и надо. Другое дело, может, оно и вправду с положением галочки в панели не коррелирует
так не документа. а именно "физического" переключателя мне нужно значение.
значение точки в документе он нормально "отдает"
по-умолчанию он всегда в начале работы стоит в центре. кстати тоже не читая значение из текущего документа.
1675790401093.png
 
по-умолчанию он всегда в начале работы стоит в центре.
Не всегда.

Код:
Application.FrameWork.Automation.Invoke "3148e122-4f73-6e8a-4dfb-b2f6a84090d5"
Позволяет играться, и даже менять, правда через одно место и криво.., я в этом не силен.
1675791479022.png
 
  • Спасибо
Реакции: DukereD

у документа - не всегда. но сам переключатель всегда в центре


Код:
Application.FrameWork.Automation.Invoke "3148e122-4f73-6e8a-4dfb-b2f6a84090d5"
Позволяет играться, и даже менять, правда через одно место и криво.., я в этом не силен.
Посмотреть вложение 156350

не совсем понял как с этим работать ((( в мануале вообще никаких пояснений нету.
и очень смущает Do not use )))))))

1675794771716.png
 
У каждого элемента кореловского интерфейса есть свой GUID
Где то в этом разделе был топик, в котором описывали как получить их значения и как использовать