Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 24.12.2008, 22:32   #1
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию C++ Builder (не могу охарактеризолвать ошибку)

Такой код работает

Код:
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
Label1->Caption = "Test";
}

А такой нет. ЧТо я делаю не так?
Цитата:
[C++ Error] Unit1.cpp(18): E2451 Undefined symbol 'Label1'

Код:
void fun()
{
Label1->Caption = "Test";
}
//---------------------------------------------------------------------------

void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
fun();
}
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума
Старый 24.12.2008, 22:38   #2
ActioNs
Пользователь
 
Регистрация: 17.07.2008
Сообщений: 38
По умолчанию

проблема в области видимости. void fun() находится в глобальной видимости, а BitBtn1Click - это метод класса TForm1. и внутри этого метода можно напрямую обращаться к свойствам этого класса. а вот из функции fun() - нет.

или так
Код:
TForm1->Label1->Caption = "Test";
или так
Код:
TForm1::Label1->Caption = "Test";
не помню уже как там, обычно в консоли работаю или с dirx. ну короче обращайся через TForm а не напрямую к лейблу

Последний раз редактировалось MaTBeu; 24.12.2008 в 22:50.
ActioNs вне форума
Старый 24.12.2008, 22:46   #3
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Твои способы не помогли, но зато ты мне напомнил, что это классы.
Я просто к классу TForm1 добавил нужную мне публичную функцию.

Спасибо.
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс

Последний раз редактировалось ROD; 24.12.2008 в 22:49.
ROD вне форума
Старый 24.12.2008, 22:49   #4
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Код:
Form1->Label1->Caption = "Test";
Работает как глухонемой.
Только Form1 - это имя формы. Если вы назвали форму по своему, то туда нада это имя и писать.
MaTBeu вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Лаба по программированию. Не могу найти ошибку((( KrL^^ Помощь студентам 3 08.10.2008 14:49
Помогите! Не могу обнаружить ошибку pilevas Помощь студентам 1 23.06.2008 10:48
Не могу найти ошибку! Эдуард Общие вопросы C/C++ 7 27.02.2008 16:34
Не могу выявить ошибку Cyn4uk Общие вопросы Delphi 14 14.01.2008 13:12