|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.10.2014, 15:27 | #1 |
Форумчанин
Регистрация: 26.01.2009
Сообщений: 125
|
С++ Работа с элементами другой формы
Извините если слишком много буков.
Проблема следующая: есть динамически создаваемые объекты. Их много и создаю я их в цикле-матрёшке. После к ним надо как то обращаться чтобы поменять их свойства. Когда конкретный кусок кода вызывается с того же .cpp где создается форма то все отрабатывает нормально. Я решил в главном модуле оставить логику а математику вынести в виде функций в другой модуль. Так вот когда тот же код отрабатывается из второго модуля вываливается access violation. Я примерно понимаю что это обращение в никуда, ну или по крайней мере не туда. Но не понимаю почему. Был ничтожный опыт программирования на Delphi. Там подобные вещи понял как реализовать - подключал другой модуль в Uses и далее обращался свободно (что то типа TForm1.Panel1.Edit1.text...). Подскажите что не так здесь? Unit1.h Код:
и собсна код который выполняется из Unit1.cpp и вылетает из Unit2.cpp Код:
в Unit1.cpp заинклюдил Unit2.cpp в Unit2.cpp заинклюдил Unit1.h иначе ругалось Про заголовки почитал но недопонял, буду перечитывать но был бы благодарен если бы мне разжевали если я что то сделал неправильно с этими включениями. Просто пытался как в Delphi в первом сослаться на второй а во втором на первый, он ругается что слишком глубокое вложение, в рекурсию видимо бесконечную сваливается. Не понимаю как корректно надо ссылаться на другие модули здесь. |
11.10.2014, 15:43 | #2 |
Форумчанин
Регистрация: 26.01.2009
Сообщений: 125
|
Апдейт такой:
по прочтению пары топиков подумал - возможно моя Panel1 и все что на ней должны быть объявлены в Public чтобы к ним можно было обращаться? Если догадка правильная, что тогда означает Published? |
11.10.2014, 16:09 | #3 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Глупый вопрос: А почему не использовать Грид вместо кучи эдитов?
I'm learning to live...
|
11.10.2014, 16:11 | #4 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Published - это раздел класса, где содержатся свойства и события, доступные из object inspector в дизайн-режиме.
Теперь по коду: поставь брейкпойнт на свою подчёркнутую строку и посмотри, какая из переменных = NULL для начала. И глобальный вопрос: нафига тебе такой огород из вложенных циклов? Выглядит просто чудовищно!!! Скажи, что ты пытаешься сделать, мы подскажем, как это сделать проще (если возможно). Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
12.10.2014, 12:28 | #5 |
Форумчанин
Регистрация: 26.01.2009
Сообщений: 125
|
Я хочу программу для решения судоку сделать, и в этих эдитах у меня будут цифры. Хочу отдельно на каждый эдит отрабатывать клик мыши, если будет грид то (если я правильно понимаю) не будет привязки к элементу при клике на нём. Потом сложу значения из эдитов в матрицу и буду решать.
А четыре цикла просто чтобы сделать промежутки между блоками 3х3. Это сейчас все вешаю на кнопку и пытаюсь отработать, потом просто один раз запущу это при открытии программы, это не будет постоянно отрабатываться. Последний раз редактировалось BoozZzilla; 12.10.2014 в 12:35. |
12.10.2014, 12:39 | #6 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Если это не нравится всегда можно использовать событие OnMouseUp. Там есть координаты, по которым можно определить над какой ячейкой был клик. А мульон эдитов - нонконформисский нонсенс.
I'm learning to live...
|
|
12.10.2014, 12:51 | #7 | |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Цитата:
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
|
12.10.2014, 12:59 | #8 |
Форумчанин
Регистрация: 26.01.2009
Сообщений: 125
|
O.K.
Хорошо, спасибо, честное слово сделаю через грид, т.к. будет проще
Кажется странным что то считать по координатам если есть возможность сразу взять номера строки и столбца ячейки. Однако, я упёртый, и если столкнулся надо проблему решить. Просто чтобы понять что я неправильно сделал, кроме самого метода. В понедельник попробую по совету Миная отследить на что ругается(проект на рабочем компе). Спасибо что тратите время, я не прощаюсь |
12.10.2014, 13:01 | #9 | |
Форумчанин
Регистрация: 26.01.2009
Сообщений: 125
|
Цитата:
За проект спасибо, но я боюсь заглядывать - если я не найду свои грабли, как я научусь что то выдумать и найти ошибку в выдуманном? Апдейт: скачал и открыл, и как мне в общем то мог помочь этот файл? Сделать такой-же дизайн? )) Последний раз редактировалось BoozZzilla; 12.10.2014 в 13:06. |
|
12.10.2014, 13:05 | #10 | ||||
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Цитата:
Цитата:
Цитата:
Цитата:
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
||||
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[C#] Управление элементами другой формы | JonMagon | Помощь студентам | 13 | 07.11.2012 12:24 |
Проблема с элементами формы и jquery | coolartemka | JavaScript, Ajax | 1 | 02.06.2011 00:23 |
Создание формы-списка с элементами из БД | maryan.vetrov | PHP | 10 | 24.12.2010 04:49 |
Из DBGrid одной формы отразить в ListBox на другой формы | VenZell | БД в Delphi | 2 | 28.05.2010 07:27 |
Работа с компонентами и их вызов из другой формы | Патрон | Общие вопросы Delphi | 3 | 09.12.2008 04:20 |