С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
8 / 8 / 12
Регистрация: 01.05.2011
Сообщений: 27

Как объявить компонент в своём классе?

15.02.2018, 20:41. Показов 1678. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Не могу найти примеров, разобраться самостоятельно не получается.
Допустим мне нужно сделать свой класс который - из TPanel, в нём будет несколько переменных и несколько компонентов, допустим TLabel.

C++
1
2
3
4
5
6
7
8
9
10
11
12
class MYPanel : public TPanel
{
__published:
    //TLabel *MYLabel = new TLabel(this); // error E2233: E2233 Cannot initialize a class member here
    TLabel *MYLabel;
    //MYLabel = new TLabel(this); // error E2238: E2238 Multiple declaration for 'MYPanel::MYLabel'
 
private:
public:
    int a;
    __fastcall MYPanel(Classes::TComponent* Owner):TPanel(Owner){};
};
Экземпляр класса (панели) создаётся, подскажите, как правильно объявлять в нём компоненты
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.02.2018, 20:41
Ответы с готовыми решениями:

Как создать событие в своём классе
Есть класс Class1 Есть его экземпляр var A:Class1 = new Class1(); Как сделать чтобы у переменной A было событие onMessage, чтобы я...

Как создать в своем классе событие ?
Познакомился с Qt , там написано как можно связать событие с обработчиком события , как связать обработчик события с нескольким событиями ,...

Как использовать экземпляр PDO в своём классе?
Вот я соединяюсь с базой: $dbh = new PDO("mysql:host=$host;dbname=$db_name",$user,$pass); если использовать $dbh вне своего класса,...

5
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
15.02.2018, 21:06
__published только для дизайнера форм.
Объявляй в секции private или public.
0
8 / 8 / 12
Регистрация: 01.05.2011
Сообщений: 27
15.02.2018, 21:48  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
Объявляй в секции private или public
в них так же строки с оператором new не проходят
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
15.02.2018, 21:55
Michael#7 Вы несете чушь, освойте азы С++, потом уже лезьте в С++Builder компоненты клепать.
0
 Аватар для Lelik-pahan
1703 / 899 / 207
Регистрация: 25.11.2009
Сообщений: 1,848
15.02.2018, 22:00
Лучший ответ Сообщение было отмечено Michael#7 как решение

Решение

Michael#7, непосредственно в секциях объявляются только указатели.
А создание экземпляра перенеси в тело конструктора.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class TMYPanel : public TPanel
{
private:
public:
    TLabel *MYLabel;  //если пользователь класса не будет обращаться непосредство к MYLabel, то перенести в private
    int a;
    __fastcall TMYPanel(Classes::TComponent* Owner):TPanel(Owner)
    {
        MYLabel = new TLabel(this);
        MYLabel->Parent = this;
        MYLabel->Top = 10;
        MYLabel->Left = 10;
        MYLabel->Caption = L"Caption";
    };
};
 
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    TMYPanel *p = new TMYPanel(this);
    p->Parent = this;
    p->Top = 100;
    p->Left = 100;
}
1
8 / 8 / 12
Регистрация: 01.05.2011
Сообщений: 27
15.02.2018, 22:30  [ТС]
Цитата Сообщение от Lelik-pahan Посмотреть сообщение
Michael#7, непосредственно в секциях объявляются только указатели.
А создание экземпляра перенеси в тело конструктора.
всё верно, спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.02.2018, 22:30
Помогаю со студенческими работами здесь

Как описать свой класс в своём классе?
Как описать свой класс в своём классе? Почему он его не видит? Помогите Ошибка: Undeclared identifier: 'TBBB' Type TAAA =...

Как объявить vector в классе?
template<typename NODETYPE> class List { public: List(); ~List(); ... private: ... vector<Node<NODETYPE> *>...

Как объявить переменную в классе?
Доброго времени суток. Как правильно объявить переменную в private: Делаю так: private: std::vector<double>* parameters =...

Как в классе объявить строку?
Люди помогите пажалуста разобратся, я не поиму ни как, как в классе обьявить строку?? Пишу визуально ( Windows Form Application )...

Как правильно использовать экземпляр PDO в своём классе?
Читал тему, но приведенный вариант в самом конце не подходит. Поэтому вынес подключние к базе в отдельный класс, где в конструкторе идет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru