Поиск:

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


Эксперт
****


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

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



Ваш код (с соответствующими модификациями) вставляется или вызывается в CalcButtonClick().
По результату выполнения выполняете одно из действий:
1. Вызывается диалог с результатом и кнопкой OK.
2. Устанавлиается или сбрасывается CheckBox или результат вываоться на Label и устанавливается зелёный или  красный фон.
PM   Вверх
Marathon
Дата 17.12.2015, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Еще вопрос возник,  ввести нужно количество вершин, в кнопке Add, как сделать счетчик, чтобы количество вводимых вершин было равно нажатию кнопки Add, или же как считать количество вершин из ЛистБокса

Добавлено через 5 минут и 27 секунд
Лучше, наверное, чтобы определять количество вершин из листбокса

Добавлено через 7 минут и 22 секунды
Опять же, наверное, через количество клипов по Add...
PM MAIL   Вверх
math64
Дата 17.12.2015, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



число кликов Add - число кликов Delete = число айтемов в ListBox = количество вершин
А можно добавить кпонпки Load и Save - тогда считать клики будет бессмысленно.
PM   Вверх
Marathon
Дата 17.12.2015, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



math64, это понятно, но как записать что число итемов равно, например, n (количеству вершин). Извините, если задаю глупые вопросы, я только учусь и мне важно понимать
PM MAIL   Вверх
math64
Дата 18.12.2015, 08:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Заполнить список, имея полигон:
Очистить список и вызвать Add n раз.
Создать полигон имея список: n определяется по числу итемов в списке, потом итемы перебираются в цикле - примерный код я уже давал.
К сожалению, Билдер не поддерживает разделение Модель-Вид-Контроллер и создавать модель (в Вашем случае - полигон) из вид (ЛистБокс) и наоборот и поддерживать их синхронизацию приходится самостоятельно 

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


Новичок



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

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



При написании строчки
Код

 const char* s = ListBox1->Items->String[i].c_str();
 вылетает ошибка : Unable to invoke Code Completion due to errors in source code. На листбокс1.Да мне важен второй вариант: имея точки, построить полигон. Ругается еще на неправильное объявление 
Код

struct point {int x,int y}*poligon


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


Эксперт
****


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

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



опечатка: Strings. После ввода "ListBox1->Items->" Билдер выдаст подсказку, какие есть свойства/методы у Items.

Цитата(Marathon @  18.12.2015,  10:15 Найти цитируемый пост)

Код

struct point {int x,int y}*poligon


У тебя уже есть свое объявление struct point {int x,int y}. Нужно просто point*poligon. Не нуджно тупо брать мой код 1:1 - он только иллюстрация, как делать.
PM   Вверх
Marathon
Дата 18.12.2015, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Не показывает, после ввода листбокс1 не выводит подсказку, только ошибку
PM MAIL   Вверх
math64
Дата 18.12.2015, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Ошибку выдает при компиляции, а подсказку - при редактировании, после ввода "->". Если код копипастится, никакой подсказки не будет.
PM   Вверх
Marathon
Дата 18.12.2015, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Пишу все вручную, и подсказка на этом моменте не выскакивает

Добавлено через 9 минут и 38 секунд
Хоть убей не понимаю, как он должен считывать и присваивать Х или У. Как это работает. Исправил MaskEdit,  просто на Edit, вводить только числа , иначе выскакивает ошибка и пробел между точками. Как это все делать я понял
PM MAIL   Вверх
Marathon
Дата 19.12.2015, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А если разделить на два поля Эдик Х и У может проще будет
PM MAIL   Вверх
math64
Дата 20.12.2015, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Можно. Но тогда вместо листбокс логичнее будет использовать стринггрид.
PM   Вверх
Marathon
Дата 22.12.2015, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



math64, Организовывается это тоже через цикл,  с отделением координаты Х от У?
PM MAIL   Вверх
math64
Дата 22.12.2015, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Конечно через цикл. Как использовать грид - смотри документацию и примеры, идущие с Билдером.
При использовании грид (не стринггрид) можно организовать разделение модель/вид: в GridDrawCell() рисовать данные из модели. Но число строк грида нужно устанавливать по числу вершин полигона.
PM   Вверх
Marathon
Дата 22.12.2015, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



math64, в цикле, который ты присылал, первые строчки 
Код

int n = ....-> Count;

Понятно что это количество строк, n - целое, 
Код

point * polygon = new Point [n]; 

Т.е с этого момента начинается разделение на координаты,  так а конвертация инт в поинт? И если не сложно, построчно описать что в них собственно происходит

Это сообщение отредактировал(а) Marathon - 22.12.2015, 14:59
PM MAIL   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

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

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

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

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


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

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


 




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


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

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