 |
www.integro.ru ЦСИ ИНТЕГРО
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
gstof
Зарегистрирован: 26.01.2007 Сообщения: 70 Откуда: Vladivostok-Kurgan
|
Добавлено: Вт 25 Ноя 2008 15:37 Заголовок сообщения: cоздание точечных объектов |
|
|
Здравствуйте.
Пытаюсь реализовать задачу создания точечных объетов на точках вделенного лин или площад объеекта
Код: | IApp:=GetActiveIngeoApp;
IDObj:=IApp.Selection.IDs[0];
MapObjects:= IApp.ActiveDb.MapObjects;
MapObject:=MapObjects.GetObject(IDObj);
for i:=0 to MapObject.Shapes.Count - 1 do
begin
Shape:=MapObject.Shapes;
Contour:= Shape.Item[i].Contour;
for j:= 0 to Contour.Count - 1 do
begin
Part:=Contour.Item[j];
for k:=0 to Part.VertexCount-1 do
begin
Part.GetVertex(k,x,y,z);
NewObjects:=IApp.ActiveDb.MapObjects;
NewObject:=NewObjects.AddObject(Edit1.Text);
NewShape:=NewObject.Shapes;
NewShape.Insert(-1,Edit2.Text);
NewContour:=NewShape.Item[i].Contour;
NewContour.Insert(-1);
NewPart:=NewContour.Insert(-1);
NewPart.InsertVertex(k,x+10,y+10,z); //индекс массива выходит з пределы диапазона
NewPart.Closed;
NewObject.SemData.SetValue('PointName','Point',k+1,0);
NewObjects.UpdateChanges;
end;
end;
end; |
Выдает сообщение об ошибке "Индекс массива выходит за пределы диапазона" в строчке IsertVertex.
В чем ошибка? |
|
Вернуться к началу |
|
 |
RuslanG

Зарегистрирован: 10.07.2005 Сообщения: 171 Откуда: ИНТЕГРО
|
Добавлено: Вт 25 Ноя 2008 16:59 Заголовок сообщения: |
|
|
Код: | NewPart.InsertVertex(k,x+10,y+10,z); //индекс массива выходит з пределы диапазона |
Вместо k необходимо задать -1: Код: | NewPart.InsertVertex(-1,x+10,y+10,z); |
Свойство NewPart.Closed вызывать не нужно, т.к. это ни к чему не приведет.
Во-первых, для одноточечных контуров оно не используется.
Во-вторых, если вам нужно установить признак замыкания у многоугольника, то следует писать так:
Код: | NewPart.Closed := True; |
Еще раз замечу, что в Вашем примере признак замыкания устанавливать нет необходимости. _________________ С уважением, Руслан Гадеев
Видео уроки ИнГео
Документация ИнГео
Обновления ИнГео
Интегропедия |
|
Вернуться к началу |
|
 |
gstof
Зарегистрирован: 26.01.2007 Сообщения: 70 Откуда: Vladivostok-Kurgan
|
Добавлено: Вт 25 Ноя 2008 20:52 Заголовок сообщения: |
|
|
Да, конечно. Спаибо большое. |
|
Вернуться к началу |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете добавлять приложения в этом форуме Вы можете скачивать файлы в этом форуме
|
|