Возможно ли написать резидентный макрос?

  • Автор темы Автор темы Darsh
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Darsh

Топикстартер
15 лет на форуме
Сообщения
374
Реакции
5
Задача отслеживать ввод координаты для направляющей по Y, и менять знак на отрицательный. Скажем вытянул пользователь направляющую по Y, скоректировал и ввел координату положения направляющей в документе 10, нажал Enter, а макрос исправил положение направляющей на -10. Как это собствено реализовать? и возможно ли вообще. Кроме того хотел уточнить VBA ведь не допускает вставки кода? (например ассемблерные вставки).
 
А левый верхний угол за начало координат задавать не пробовали?
VBA допускает использование DLL, можете их хоть на асме, хоть сразу в машинных кодах рисовать. Хотя С для этого более общепринят.
 
Теоретически можно, но практически нереально. Проще в код корела влезть. Хотя, если объясните поподробнее, для чего это вам надо, возможно найдется какой то альтернативный компромиссный вариант.
 
Можно сделать отдельный диалог установки направляющей и рекомендовать пользоваться им.
Можно делать перехват окна ввода координат по y программами типа autoit, ahk, убеждаться, что выделена направляющая и вносить правку
по asm: одна тема - один вопрос.
 
Ключевой момент - зачем все таки это надо? Запустить вирус, который бы сводил с ума врагов и конкурентов? %)
 
Смысл в том, что у меня есть станок с рабочим полем, и ноль у него в верхнем левом углу. Соответствено отправляя файл на станок позиционировать объекты приходить по оси Y в отрицательную сторону. Написать отдельный диалог с необходимым мне обращением знака я могу, но не вижу смысла что минус ставить ручками, что лишний клик или hot key нажимать для вызова макроса.

lev было дело я пробовал эти скрипты, не все из них видят внутренние textbox'ы корела.
 
Брр, совершенно не понял ничего. То есть, получается, вам перед выводом весь файл надо отзеркалить относительно горизонтальной оси а при чем тут направляющие?
И неясно, какая разница через стандартный диалоговый бокс задавать положение линии или через макросовый?
В общем, я смутно чувствую, что вы не там видите проблему, где она есть. ;)
 
Вы меня не поняли уважаемый. Ничего зеркалить не надо. Просто рабочий стол станка устроен так что нулевая координата это верхний левый угол, система декартовская. Если вам угодно я поставлю задачу как "лень вводить минус перед координатой", хотел выяснить может ли макрос автоматически за меня отслеживать ввод Y координаты для соответствующей направляющей и менять (добавлять минус) знак?

P.s. Это не жизненая необходимость, а скорее вопрос интереса ;)
 

Вложения

  • screenshot.JPG
    screenshot.JPG
    144.7 КБ · Просм.: 1 094
И в правду не понял и продолжаю не понимать. 'hz'

нулевая координата это верхний левый угол, система декартовская
А что не так? На скриншоте так и есть - верхний угол нулевая координата. Или имеется в виду, что положительные значения должны вниз откладываться? Так тогда не только в направляющих дело, придется координаты всех объектов пересчитывать, более того, все окна трансформации придется переделывать, поскольку там Y тоже в неправильном направлении. Или я что-то опять упустил?
 
В иллюстраторе cs5 нормально отрабатывает, в cs3 аналогично корелу.
Может более тонкая настройка есть в Technical Suite.
 
В иллюстраторе cs5 нормально отрабатывает, в cs3 аналогично корелу.
Может более тонкая настройка есть в Technical Suite.
В смысле, система координат настраивается? Так это ж не иллюстратор, IMHO, тут так нельзя. Одно из немногих действий, которое иллюстратор может, а корел нет. Правда, практически бесполезное. ;)
 
В смысле, система координат настраивается? Так это ж не иллюстратор, IMHO, тут так нельзя. Одно из немногих действий, которое иллюстратор может, а корел нет. Правда, практически бесполезное. ;)
Я не говорю что оно настраивается, но в разных версиях поведение отличается...
 
_MBK_ вы все усложняете ))) На скриншоте видно что для того чтобы объект попал в рабочий стол, его координата должна быть отрицательная по Y. Мне же нужно автоматически обращать знак только Y координаты направляющей, только ее знак и все.
 
Тогда отслеживать нажатие на кнопку Add в диалоге Options->Guidelines->Horizontal и менять по нему знак в окне числового ввода. В конкретно взятом кореле вполне возможно, что получится средствами того же ahk
Если нет - только лезть в код обработчика этого нажатия.
 
Мне же нужно автоматически обращать знак только Y координаты направляющей, только ее знак и все.
Да проще пареной репы, в VBA вешается обработчик на ShapeCreate, и меняется знак уже после создания.
 
в VBA вешается обработчик на ShapeCreate
Думаешь он корректно отрабатывать на направляющих будет? Тут народ жаловался недавно, что это событие вообще непредсказуемо срабатывает. Да и подтормаживать будет наверное.
 
Думаешь он корректно отрабатывать на направляющих будет? Тут народ жаловался недавно, что это событие вообще непредсказуемо срабатывает. Да и подтормаживать будет наверное.
Я перед отправкой сообщения как раз направляющие и проверял. Насчет непредсказуемости ничего сказать не могу.
 
  • Спасибо
Реакции: _MBK_
Я перед отправкой сообщения как раз направляющие и проверял. Насчет непредсказуемости ничего сказать не могу.
Ну я не пробовал, если реально работает, то, да, вот оно, готовое решение, гениальное и простое!
 
А возможно сделать что макрос постояно отслеживал это событие? фоново
 
А возможно сделать что макрос постояно отслеживал это событие? фоново
Ну если не вдаваться в подробности, то да.
Не макрос будет отслеживать, а он будет вызываться самим корелом при наступлении данного события.
 
Статус
Закрыто для дальнейших ответов.