Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Формы С++ 
:(
    Опции темы
math64
Дата 23.12.2015, 08:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 4
Всего: 72



Код

   // Число точек полигона
  int n = ListBox1->Items->Count;
  point* poligon = new Point[n];
  for(int i = 0; i < n; i++) {
     // Получаем строку списка. Вместо массива char и sscanf можно пользоваться TAnsiString и функциями билдера
     char str[80];
     strcpy(str, ListBox1->Items->Strings[i].c_str() );
     // Преобразуем координаты из строки в число
     point p;
     sscanf(str, "%d,%d", &p.x, &p.y);
     poiligon[i] = p;
  }
  // Работаем с полигоном
  if (Convex(n, polygon) {
     Label1->Text = "Полигон выпуклый";
     Label1->Font->Color = clBlack;
  } else {
     Label1->Text = "Полигон не выпуклый";
     Label1->Font->Color = clRed;
  }
  // Удаляем полигон
  delete[] poligon;


Это сообщение отредактировал(а) math64 - 23.12.2015, 13:41
PM   Вверх
Marathon
Дата 23.12.2015, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 2.12.2015

Репутация: нет
Всего: нет



math64, И еще такой вопрос, а как задать, чтобы вводимое число в Edit = количеству заполняем строчек в Stringgrid
PM MAIL   Вверх
math64
Дата 23.12.2015, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 4
Всего: 72



Цитата(Marathon @  23.12.2015,  12:19 Найти цитируемый пост)
И еще такой вопрос, а как задать, чтобы вводимое число в Edit = количеству заполняем строчек в Stringgrid 

А зачем?
Если уж очень нужно - используй TSpinEdit. Вешай на OnChange обработчик, в котором изменяй число строк в гриде.
Но обычно используются кнопки Add, Insert и Delete добавляющие и удаляющие строки по одной.

Это сообщение отредактировал(а) math64 - 23.12.2015, 13:44
PM   Вверх
WileyJohn
Дата 11.1.2016, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 11.1.2016

Репутация: нет
Всего: нет



math64, Вот у меня почти аналогичная задача, но без всяких выпуклых - вогнутых, по примеру делал как тут,но выдавало некоторые ошибки, в итоге сделал так, но тоже кривенько,может подскажите что не так, пожалуйста
Код

  int n = ListBox1->Items->Count;
  TPoint* poligon = new TPoint[n];
  for(int i = 0; i < n; i++) { 
    poligon[i].x = ListBox1->Items->Strings[i].SubString(1, 
                    ListBox1->Items->Strings[i].Pos(",")-1).ToInt();
    poligon[i].y = ListBox1->Items->Strings[i].SubString(
                    ListBox1->Items->Strings[i].Pos(",")+1,
                    ListBox1->Items->Strings[i].Length()).ToInt();
                                    
  } 

PM MAIL   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0445 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.