![]() |
|
|
![]()
|
|
| Bugmaker |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 27.6.2008 Репутация: нет Всего: нет |
Дайте пример кода на билдере с какой нибудь простенькйо процедурой.. допустим проверяющей по нажатию кнопки состоянии 2х чекбоксов и если оба чекнуты . то вывоядщей сообщение.
пробовал что-то вроде: Procedure CheckBoxCheking() { if checkbox1->Checked { MEssageBoxA(NULL,"error","error",NULL); } } ВЫдает Undefinde symbol checkbox1 Чекбокс точно лежит на форме... |
|||
|
||||
| SVN74 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 5.5.2008 Где: Комсомольск на Дн епре Репутация: 11 Всего: 18 |
||||
|
||||
| Anikmar |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
В таком виде тоже не сработает. Чекбоксы к форме относятся. примерно так:
|
||||
|
|||||
| Bugmaker |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 27.6.2008 Репутация: нет Всего: нет |
Суть в том, что на форме много чекбоксов.. и хочется в зависимости от изменения одного из них обрабатывать все сразу... то есть поменялся один, тут же надо запросить состояния других.. действие кадждому из них писать бе змазы.. хотел вынести в отдельную процедуру и процедуру привязать к событью каждого из боксов.
Как сделать красивее? void CheckBoxCheking(void) { if(CheckBox1->Checked) { MessageBoxA("My_Error","Error",MB_OK + MB_ICONERROR); } } Такая же ошибка, как и с моим вариантом.. Undefinde symbol checkbox1 Это сообщение отредактировал(а) Bugmaker - 25.8.2009, 22:02 |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
Об этом я уже написал. Так слету работать не будет. Нужно метод проверки внести внутрь формы либо писать в отдельной функции что-то вроде такого: if(Form1->CheckBox1->Checked) Внутри вашей функции ничего неизвестно о члене класса формы вот он и ругается, что не знает что это. А по поводу задачи в целом - повесьте на все чекбоксы один обработчик события OnChange - и будет вам счастье. Внутри него проверяйте хоть все, хоть через один. |
|||
|
||||
| Bugmaker |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 27.6.2008 Репутация: нет Всего: нет |
А как на все один повесть?? ))
|
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
||||
|
||||
| Bugmaker |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 27.6.2008 Репутация: нет Всего: нет |
Спасибо, вроде бы разобрался.
Неужели с процедурами все так сложно? |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
А в чем тут сложности? А в каком языке из любой процедуры можно достучаться до поля объекта не указывая сам объект? Вы создаете объект формы, пихаете в него поля, а потом из внешней процедуры пытаетесь достать это поле. А если у вас несколько форм с чекбоксами? К какому должна обращаться ваша процедура? Вы просто неправильно обращаетесь к свойствам объекта. Никаких тут сложностей пока еще нет. Они начнутся позже - в процессе более глубокого изучения билдера и С++. |
|||
|
||||
| Bugmaker |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 27.6.2008 Репутация: нет Всего: нет |
Я понимаю что при написании моей процедуры
не так Procedure CheckBoxCheking() { if checkbox1->Checked { MEssageBoxA(NULL,"error","error",NULL); } } а так Procedure CheckBoxCheking() { if form1->checkbox1->Checked { MEssageBoxA(NULL,"error","error",NULL); } } ПРоблема исчезнет, но я ведь все это пишу в Unit1.cpp ... там же описана и форма и все объекты на ней .. неужели нельзя процедуру както привязать к данной форме? |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
То, что некий класс описан в данном модуле это, конечно, хорошо. Но подключить можно очень много модулей и что тогда? Описание объекта и сам объект разные вещи. Из одного модуля можно вызвать кучу форм. Необходимо указать к какому конкретно объекту идет обращение. И то, что в рамках вашего проекта такой объект один и для вас это очевидно вовсе не очевидно для компилятора. Ему нужно точно сказать сколько граммов надо вешать - тобишь конкретно, какой объект использовать. А привязать вашу процедуру к форме элементарно - сделайте ее методом этой формы и все. Это сообщение отредактировал(а) Anikmar - 27.8.2009, 21:36 |
|||
|
||||
| Bugmaker |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 27.6.2008 Репутация: нет Всего: нет |
Anikmar спасибо, можно пример ?
|
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
||||
|
||||
![]()
|
| Правила форума "С++ 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. |