![]() |
|
|
![]()
|
|
| wolver17 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 15.5.2011 Репутация: 1 Всего: 1 |
Такая вот проблемка: необходимо считать в два динамических массива значения столбцов компонента StringGrid2, состоящего из 2-х столбцов произвольной длины. (В конце, для проверки что всё норм, вывожу эти же массивы в другой - StringGrid1).
На форме такие компоненты: StringGrid1, StringGrid2, Edit1, CheckBox1, BitBtn1.
код работает, и 1-й массив прекрасно записывается/считуется, а вот 2-й... в общем вот что на скрине: http://ipicture.ru/Gallery/View/6975512.html подскажите, пожалуйста, что не так? Это сообщение отредактировал(а) wolver17 - 22.11.2011, 23:54 |
|||
|
||||
| MAXIQ |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 30.12.2006 Репутация: нет Всего: нет |
Вроде работает...
|
|||
|
||||
| XPyCT |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 381 Регистрация: 24.8.2007 Где: Moldova Репутация: 10 Всего: 10 |
Для чего вы создаете динамический массив если
n - вы явно присваиваете значение 4 (размер массива); не лучше уж сделать так
а далее уже как у вас написано
Динамический массив по ходу для того и создают когда не знаешь сколько записей в таблице Это сообщение отредактировал(а) XPyCT - 25.11.2011, 08:31 |
||||||
|
|||||||
| wolver17 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 15.5.2011 Репутация: 1 Всего: 1 |
простите, протупил int n, а не int n=4. |
|||
|
||||
| wolver17 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 15.5.2011 Репутация: 1 Всего: 1 |
я вроде разобрался с проблемой, только решение создаёт другую проблему)
создавая массивы функцией new, прога ж не знает размер массив т.к. они динамические, и получает их после ввода значения n уже при работе проги. И я проверял в обычном Borland C++, если cin>>n; делать после объявления массива, а не до - то подобные глюки с потерей значений в массиве происходят, а если делать ввод а потом объявление, т.е. как надо - то всё норм. Так вот, проблемка в том что мне мои массивы нужны потом для расчётов в моих ф-циях, и я не могу их описать локально. Как же тогда исправить глюк или заставить элементы записываться правильно? (или я чего-то не знаю, и можно передавать пользовательские переменные в стандартные ф-ции, где параметр только скажем TObject *Sender?) |
|||
|
||||
| MAXIQ |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 30.12.2006 Репутация: нет Всего: нет |
Мда.. или я совсем туплю или Вы уважаемый чего-то не договариваете по поводу cin>>n...
Так у тебя проект в BCB и ты используешь формы и стандартные элементы управления? Или ты чего-то консольное творишь? Тестовую переменную с инициализацией я специально оставил для наглядности int n=4...; Указатель на массив нужно объявить глобально. new и delete вызывать только один раз.. на создании (Create) и (Destroy) соответственно. А дальше, если это нужно, можешь изменять его размерность, записывать, перезаписывать, в общем глумиться как хочешь написав свою функцию обработки в которую можно передавать в качестве аргумента тот самый глобальный указатель на массив, а ее уже вызывать из различных событий элементов управления "где параметр только скажем TObject *Sender")))))). Таким макаром у тебя и данные из массива будут всегда под рукой, и код короче.... до поры до времени))). А лучше возьми книжку в руки и еще разок динамическое выделение памяти почитай.. и желательно не ту что уже читал, а другую.. вопросы сами отвалятся. |
|||
|
||||
| wolver17 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 15.5.2011 Репутация: 1 Всего: 1 |
сорри, только сейчас увидел, что это было не мне адресовано, а Вам от ХруСТ'а Вооот, как я и думал, что или я где-то туплю или хз сделал глобально:
потом внутри ф-ции BitBtn1Click объявил массив:
Осталось только свою прогу переделать, раз примерчик работает, думаю и там проблем не будет) |
||||
|
|||||
| XPyCT |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 381 Регистрация: 24.8.2007 Где: Moldova Репутация: 10 Всего: 10 |
тогда сорри! тогда действительно лучше глобально обьявить. Но если будут планы реализовывать и на других формах сие чудо тогда уже делайте класс N пихайте в закрытый раздел и всего 1н или два метода |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |