Список форумов www.integro.ru www.integro.ru
ЦСИ ИНТЕГРО
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Замкнуть объект

 
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы разработчиков
Предыдущая тема :: Следующая тема  
Автор Сообщение
gstof



Зарегистрирован: 26.01.2007
Сообщения: 70
Откуда: Vladivostok-Kurgan

СообщениеДобавлено: Вс 17 Июн 2007 12:56    Заголовок сообщения: Замкнуть объект Ответить с цитатой

Каким методом можно замкнуть пространственный объект
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
RuslanG



Зарегистрирован: 10.07.2005
Сообщения: 171
Откуда: ИНТЕГРО

СообщениеДобавлено: Пн 18 Июн 2007 10:39    Заголовок сообщения: Ответить с цитатой

http://integro.ru/forum/viewtopic.php?p=983#983
_________________
С уважением, Руслан Гадеев
Видео уроки ИнГео
Документация ИнГео
Обновления ИнГео
Интегропедия
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
gstof



Зарегистрирован: 26.01.2007
Сообщения: 70
Откуда: Vladivostok-Kurgan

СообщениеДобавлено: Пн 18 Июн 2007 15:17    Заголовок сообщения: Ответить с цитатой

Я так и понял, что метод Closed определяет замыкание части контура.
Однако в моем коде, сделанном на основе Вашего почему-то не происходит замыкания. А в ручную когда их много тоскливо
Код:
procedure TForm1.Button4Click(Sender: TObject);
var x0,y0:Double;
begin
            aNewObjects:= FInGEOApp.ActiveDb.MapObjects;
            aNewObject:=aNewObjects.AddObject(Edit1.Text);
            NewContour:=aNewObject.Shapes.Insert(0,Edit2.Text).Contour;
  theObjID := FInGEOApp.Selection.IDs[0];
   aMapObjects := FInGEOApp.ActiveDb.MapObjects;
   aMapObject := aMapObjects.GetObject(theObjID);
   for i := 0 to aMapObject.Shapes.Count - 1 do begin
      aShape := aMapObject.Shapes[i];
      // Информация о стиле отрисовки фигуры
      Memo1.Lines.Add(Format('ShapeStyleName: %s',[aShape.Style.Name]));
      // Если фигура не определяет геометрию пространственного объекта,
      // то ее пропускаем
      if not aShape.DefineGeometry then
         Continue;
      for j := 0 to aShape.Contour.Count - 1 do begin
         aNewPart:= NewContour.Insert(-1); //Создание новой части
         aPart := aShape.Contour[j];
         // Общая информация о части контура
         Memo1.Lines.Add(Format('  Part %d',[j]));
         if aPart.Closed then
            Memo1.Lines.Add('  Эта часть контура замкнута.')
         else
            Memo1.Lines.Add('  Эта часть контура разомкнута.');
         Memo1.Lines.Add(Format('  Площадь: %g мм.', [aPart.Square]));
         Memo1.Lines.Add(Format('  Периметр: %g мм.', [aPart.Perimeter]));
         for k := 0 to aPart.VertexCount - 1 do
            begin
            aPart.GetVertex(k,aX,aY,aC);
          {  if k=0 then
             begin
             x0:=aX;
             y0:=aY;
             end; }
            Memo1.Lines.Add(Format('    Vertex %d: x = %g, y = %g, convexity = %g', [k,aX,aY,aC])); // Информация о вершинах
            aNewPart.InsertVertex(-1,aX,aY,0);
            end; //end vertex
         //  aNewPart.InsertVertex(-1,x0,y0,0);
           aNewPart.Closed; //закрытие новой части
      end;  //end Part
   end;  //end Shape
            aNewObjects.UpdateChanges;
Memo2.Lines.Add('Закончено');
end;
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
RuslanG



Зарегистрирован: 10.07.2005
Сообщения: 171
Откуда: ИНТЕГРО

СообщениеДобавлено: Пн 18 Июн 2007 17:05    Заголовок сообщения: Ответить с цитатой

aNewPart.Closed является свойством, а не методом. Изменяя свойство
Код:
Closed := True;
мы замыкаем часть контура,
Код:
Closed := False;
- размыкаем.
_________________
С уважением, Руслан Гадеев
Видео уроки ИнГео
Документация ИнГео
Обновления ИнГео
Интегропедия
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
gstof



Зарегистрирован: 26.01.2007
Сообщения: 70
Откуда: Vladivostok-Kurgan

СообщениеДобавлено: Пн 18 Июн 2007 17:45    Заголовок сообщения: Ответить с цитатой

Ну да. Спасибо
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов www.integro.ru -> Вопросы разработчиков Часовой пояс: GMT + 5
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете добавлять приложения в этом форуме
Вы можете скачивать файлы в этом форуме


© phpBB Group
Русская поддержка phpBB