|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Ошибка при выделении текста в AutoCAD из Delphi
Регистрация: 20.10.2010
Сообщений: 10
|
||
Просмотров: 4438
|
|
||||
Инженер Регистрация: 02.10.2008
С-Пб
Сообщений: 3,692
|
По аналогии с VBA, наверное, txtcode должна быть integer, а txttype variant. Только там вроде бы массив должен быть, даже если он из одного элемента.. чего-то типа
Код:
__________________
...Не пытайся гнуть ты ложку, Не вяжи её узлом. Ложка - ложка понарошку, А по правде, - это лом! Последний раз редактировалось AlexV, 20.10.2010 в 15:41. |
|||
![]() |
|
||||
Регистрация: 20.10.2010
Сообщений: 10
|
Пробовал и integer с variant... Безрезультатно. Тем более что какая по идее разница, что за тип данных, если в делфийском варианте Select параметры типа OleVariant. Насчет массива в VBA я в курсе, только вот в Делфи такой вариант вроде как не реализовать (на array Делфи ругается).
|
|||
![]() |
|
||||
Инженер Регистрация: 02.10.2008
С-Пб
Сообщений: 3,692
|
А почему в iselset.Select(acSelectionSetAll, EmptyParam, EmptyParam, txtcode, txttype) аргументы в скобках? Я, конечно, дельфей не знаю, но в VBA они без скобок.. Либо перед вызовом процедуры должно быть "Call".
Цитата:
__________________
...Не пытайся гнуть ты ложку, Не вяжи её узлом. Ложка - ложка понарошку, А по правде, - это лом! |
|||
![]() |
|
||||
Регистрация: 20.10.2010
Сообщений: 10
|
Цитата:
Массивы конечно же есть, только они в эту процедуру никак не хотят лезть)))) Решил поступить по-другому. Добавил следующие строчки для нахождения текста в iselset и теперь вылазит где-то на 16-й итерации (всего объектов в iselset выдает больше 2000) такое страшное окошко - "Разрушительный сбой" =))): Код:
Последний раз редактировалось praeeo, 20.10.2010 в 16:22. |
|||
![]() |
|
||||
Инженер Регистрация: 02.10.2008
С-Пб
Сообщений: 3,692
|
То есть, я так понимаю, Select без фильтра нормально работает..
А что нужно-то, из всех примитивов в файле выбрать однострочный текст? Если просто без фильтра перебирать все объекты набора, то зачем вообще тогда создавать набор? Можно тупо перебрать все объекты modelspace, проверяя их тип..
__________________
...Не пытайся гнуть ты ложку, Не вяжи её узлом. Ложка - ложка понарошку, А по правде, - это лом! |
|||
![]() |
|
||||
|
||||
![]() |
|
||||
Регистрация: 20.10.2010
Сообщений: 10
|
Цитата:
Код:
В VBA реализуется проще: Код:
Хм, вот так работает: Код:
Код:
Последний раз редактировалось praeeo, 21.10.2010 в 15:16. |
|||
![]() |
|
||||
Регистрация: 20.10.2010
Сообщений: 10
|
Из-за ошибки при i: variant(OleVariant) "E2032 For loop control variable must have ordinal type" (в цикле ,в общем, использовать Вариант нельзя)делаю вот так:
Код:
добавление: Всё, разобрался. Дело было в разных типах текста: IAcadText (однострочный) и IAcadMText (многострочный). Вот исправленный, хотя еще и сырой, юнит поиска и замены, может кому понадобится. Спасибо всем за участие, тему можно закрыть ) Код:
Последний раз редактировалось praeeo, 22.10.2010 в 10:41. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
В русской версии AutoCAD 2010 SP1 32-bit файл Acad.PGP содержит ошибки. | hwd | Баги и пожелания в Autodesk | 21 | 21.04.2010 20:27 |
Ошибка 1308, что делать??? (Autocad 2007) | yhukym | AutoCAD | 6 | 15.03.2010 17:53 |
Мигает многострочный текст при выделении в AutoCAD 2010 | alex182 | AutoCAD | 3 | 15.01.2010 15:29 |
Delphi and AutoCAD | John Ch. | Программирование | 4 | 31.01.2004 13:58 |