Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: Павел55 от 06-12-2020, 12:34:57

Название: Редактировать текст внутри блока
Отправлено: Павел55 от 06-12-2020, 12:34:57
Можно ли создать такое поведение для текста внутри блока, чтобы пользователь мог его редактировать как обычный текст?
Название: Re: Редактировать текст внутри блока
Отправлено: Дмитрий Загорулькин от 06-12-2020, 14:12:30
мог его редактировать как обычный текст
В каком смысле? Он и остаётся обычным. Заходишь в редактор блоков и редактируешь. В этом плане ничего не меняется. Или речь идёт про атрибуты? Но и они вроде достаточно просто редактируются.
Название: Re: Редактировать текст внутри блока
Отправлено: Павел55 от 06-12-2020, 14:41:18
Имеется ввиду - текст находится внутри блока, но при этом поведение этого текста остается как будто то бы это просто текст ( не внутри блока). То есть при двойном щелчке по нему его можно отредактировать.
Название: Re: Редактировать текст внутри блока
Отправлено: Александр Ривилис от 06-12-2020, 15:40:11
Можно ли создать такое поведение для текста внутри блока, чтобы пользователь мог его редактировать как обычный текст?
Нет. И не нужно.
Название: Re: Редактировать текст внутри блока
Отправлено: Дмитрий Загорулькин от 06-12-2020, 16:21:22
Для этого как раз и сделаны атрибуты блока. Или они чем-то не устраивают?
Название: Re: Редактировать текст внутри блока
Отправлено: Павел55 от 06-12-2020, 21:02:26
Для этого как раз и сделаны атрибуты блока. Или они чем-то не устраивают?
Не устраивают, тут выбор либо custom entity, либо что то с блоками колхозить, либо делать отдельное меню для редактирования.
Название: Re: Редактировать текст внутри блока
Отправлено: Lemieux от 06-12-2020, 22:27:17
Для этого как раз и сделаны атрибуты блока. Или они чем-то не устраивают?
Не устраивают, тут выбор либо custom entity, либо что то с блоками колхозить, либо делать отдельное меню для редактирования.
А для чего это нужно?
Название: Re: Редактировать текст внутри блока
Отправлено: Александр Ривилис от 06-12-2020, 22:34:37
Для этого как раз и сделаны атрибуты блока. Или они чем-то не устраивают?
Не устраивают, тут выбор либо custom entity, либо что то с блоками колхозить, либо делать отдельное меню для редактирования.
Ну custom entity - это совсем не C#. Да и слишком много мороки. Можешь поиграться с Overrule, но это тоже очень непросто. На С++ я делал что-то похожее, но не уверен, что в AutoCAD .NET API есть всё необходимое. И в результате изменение текста в блок приведёт к изменению его во всех вставках этого блока. У меня создавался клон блока, чтобы не портить оригинал.
Название: Re: Редактировать текст внутри блока
Отправлено: Дмитрий Загорулькин от 06-12-2020, 22:38:31
Не устраивают
Так а чем? Не понимаю смысла править текст внутри блока. Он же изменится для всех блоков в чертеже.
В теории, можно сделать такое. Подписаться на несколько событий, отслеживая клики по объектам и проверяя, попал ли этот клик на текст внутри блока. Если да, то запускать инструмент редактирования текста. Это может быть окошко WPF или WinForm. Но это очень проблемный путь.
Название: Re: Редактировать текст внутри блока
Отправлено: Павел55 от 06-12-2020, 22:55:43
Не устраивают
Так а чем? Не понимаю смысла править текст внутри блока. Он же изменится для всех блоков в чертеже.
В теории, можно сделать такое. Подписаться на несколько событий, отслеживая клики по объектам и проверяя, попал ли этот клик на текст внутри блока. Если да, то запускать инструмент редактирования текста. Это может быть окошко WPF или WinForm. Но это очень проблемный путь.
По задумке, это должен быть обьект, геометрия которого меняется в зависимости от значения текста. И подразумевается, что именно такой объект будет один в чертеже. Поэтому менять в редакторе блоков - не подходит. Пока что думаю сделать окошко для редактирования текста.
Название: Re: Редактировать текст внутри блока
Отправлено: Александр Ривилис от 06-12-2020, 23:11:56
Пока что думаю сделать окошко для редактирования текс
Оно не нужно. InplaceTextEditor.Invoke тебе поможет.
Название: Re: Редактировать текст внутри блока
Отправлено: Дмитрий Загорулькин от 07-12-2020, 14:22:18
Всё равно, считаю, что атрибут для этой задачи будет лучше текста. Атрибут легче идентифицировать по тегу. Для редактирования атрибута уже есть все необходимые инструменты - меньше кодить надо будет.