Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Форма ListBox 
:(
    Опции темы
WileyJohn
Дата 13.1.2016, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Столкнулся с такой проблемой,у меня есть консольный код,где записаны вершины фигуры (программа, собственно, определяет что за фигура и рисует ее) . Но возник вопрос, как, введенные вершины из ListBox, считать есть идея со смещением позиции курсора
Код

  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   Вверх
xvr
Дата 13.1.2016, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



Неясно, отуда у вас в консольном коде появился ListBox?

PM MAIL   Вверх
WileyJohn
Дата 13.1.2016, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Я сделал форму, ListBox и кнопки Добавить,Изменить,Удалить и Edit. Пользователь вводит вершины точек в Edit, появляются они в ListBox. В консольном коде имеем :
Код

     point Q[n]={
          {9,0},     
          {0,25},      
          {-9,0}   
      }
 Далее эти координаты используются в цикле - это в консольном,а что происходит с формой:
 В ListBox имеем записанные координаты,  есть идея,выше описанная, но как эти же координаты использовать в том же цикле но уже из ListBox

Это сообщение отредактировал(а) WileyJohn - 13.1.2016, 14:54
PM MAIL   Вверх
xvr
Дата 13.1.2016, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



Насколько я понял вы хотите из готовой консольной программы сделать GUI вариант?
Если да, то для этого надо из текста консольной программы выделить ту процедуру, которая реализует нужный вам функционал, и вставить ее вызов в обработчик какой нибудь кнопки в GUI. Перед вызовом вашей процедуры нужно будет скопировать необходимые данные из GUI элементов (из того же ListBox'а) в структуры данных, где их ожидает увидеть ваша оригинальныя процедура. В вашем случае надо копировать в массив Q (приблизительно так, как у вас написанно в первом посте)

Просто уберите строку 2 и замените poligon на Q далее по тексту. Ну и еще надо быть уверенным, что в массиве Q достаточно места для всех ваших n точек

PM MAIL   Вверх
WileyJohn
Дата 13.1.2016, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ага,понятно,а вторую строку зачем убирать?) (Я только начал с формами работать,поэтому многое не понятно)
PM MAIL   Вверх
xvr
Дата 13.1.2016, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



Цитата(WileyJohn @  13.1.2016,  15:06 Найти цитируемый пост)
а вторую строку зачем убирать?

В ней создается отдельный массив (poligon) для точек. Он у вас уже есть (Q), так что отдельный создавать не нужно.

PM MAIL   Вверх
math64
Дата 14.1.2016, 07:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Наоборот, нужно убрать объявление Q и заменить его на использование указателя point* polygon; (или назвать его Q - как больше нравится). В конце не забыть delete[] polygon;
PM   Вверх
WileyJohn
Дата 14.1.2016, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Так я Q не объявлял вроде, или, Вы, имеете в виду убрать из консольного кода? Получается точки будут сохраняться там, а потом как их использовать в цикле вот таком :
Код

      if (n<3){
      return (0);
              }
      for (i=0; i<n; i++)
      {
             j=(i+1)%n;
             k=(i+2)%n;
             z=(Q[j].x - d[i].x)*(d[k].y - d[j].y);
             z-=(Q[j].y - d[i].y)*(d[k].x - d[j].x);

PM MAIL   Вверх
xvr
Дата 15.1.2016, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



Цитата(WileyJohn @  14.1.2016,  10:35 Найти цитируемый пост)
а потом как их использовать в цикле

Например, передать их в виде параметра в процедуру, в которой содержится этот цикл.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

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

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

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

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


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

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


 




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


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

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