Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 1
Регистрация: 12.05.2015
Сообщений: 59
1

Обращение к динамически созданному объекту на динамически созданной форме

29.10.2015, 11:54. Показов 1488. Ответов 4
Метки нет (Все метки)

Как, создав динамический объект, TButton, обратиться к нему?

Unit1.cpp
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
25
26
27
28
29
void __fastcall TForm1::Button2Click(TObject *Sender)
{
TForm *qwe=new TForm(Form1); 
qwe->Show();
TEdit *edit= new TEdit (Form1);
edit->Parent=qwe;
edit->Name="";
edit->Top=25;
edit->Width=299;
edit->Height=75;
 
TButton *asd1= new TButton (Form1);
asd1->Parent=qwe;
asd1->Caption="Добавить";
asd1->OnClick = B1Click;
 
//---------------------------------------------------------------------------
void __fastcall TForm1::B1Click(TObject *Sender)
{
 
int a;
a=StrToInt(((TButton*) Sender)->Caption);
TStringList*s=new TStringList;
s->Add(edit->Text);
s->SaveToFile("C:\\Users\\Юрий\\Deskt op\\СП2\\Win32\\Debug\\test\\dop.tx t");
delete s;
 
 
}
Unit1.h
C++
1
2
3
4
public: // User declarations
__fastcall TForm1(TComponent* Owner);
void __fastcall B1Click(TObject *Sender);
};
Вот.. я попытался с помощью обобщения отклика на Button обратиться к этому динамическому Button... но все равно ничего толком не понял, да и ошибка выходит связанная с типом данных... пожалуйста объясните.
к слову цель моя - записав в Edit текст - нажать на Button, который в свою очередь создает текстовый документ по заданному пути
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.10.2015, 11:54
Ответы с готовыми решениями:

Обращение к динамически созданному компоненту
Всем привет! Мне нужна помощь в моей программе Мне надо, чтобы при нажатии на динамическую...

Перемещение динамически созданной кнопки по динамически созданной сетки
Всем привет!!! Помогите не могу допетрить как сделать. суть моей проблемы в том что, мне необходимо...

Размещение компонентов на динамически созданной форме
Здравствуйте! 1) Я создал форму динамическим способом TForm *Dialog=new TForm(this); , но...

Перемещение динамически созданной кнопки по сетке на форме
не знаю как сделать, чтобы кнопки созданные динамически перемещались в любую ячейку сетки...

4
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
31466 / 20513 / 7988
Регистрация: 22.10.2011
Сообщений: 35,639
Записей в блоге: 7
29.10.2015, 12:50 2
Что вкладывается в понятие "обратиться"? При нажатии на кнопку отработает B1Click, внутри этого метода можно через Sender получить любое свойство кнопки (в том числе Caption), и, если он будет представлением числа - то StrToInt не выдаст ошибку, и код отработает. В чем проблема, можно объяснить поконкретнее?
0
10 / 4 / 2
Регистрация: 23.10.2015
Сообщений: 8
30.10.2015, 17:26 3
какую смысловую нагрузку несут следующие строки:
C++
1
2
int a;
a=StrToInt(((TButton*) Sender)->Caption);
да и указатель на TEdit глобальным сделать надо бы

Добавлено через 14 минут
по сути ты пытаешься перевести Caption кнопки asd1 ("Добавить") в "интовую" переменную, которую не используешь нигде.

Подтверждаю, код рабочий без этих двух строк, либо если Caption кнопки asd1 имеет числовое представление
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
31466 / 20513 / 7988
Регистрация: 22.10.2011
Сообщений: 35,639
Записей в блоге: 7
30.10.2015, 17:47 4
Цитата Сообщение от niceman Посмотреть сообщение
да и указатель на TEdit глобальным сделать надо бы
Это еще зачем? Не нужен тут глобальный указатель, достаточно локального, объект создается, добавляется к списку дочерних элементов формы (в момент изменения Parent-а), с этого момента про указатель можно было и забыть. Но у ТС-а еще назначаются нужные свойства, ладно, тоже нормально. Зачем же делать глобальную переменную? А если мне подобным образом 6 Edit-ов надо добавить? Все 6 указателей выносить наружу?
1
10 / 4 / 2
Регистрация: 23.10.2015
Сообщений: 8
02.11.2015, 13:24 5
в обработчике нажатия, динамически созданной, кнопки эта строчка
C++
1
s->Add(edit->Text);
работать не будет (будет ругаться что не знает никакого edit), потому и необходимо "вынести наружу". Если я не прав, то объясните подробнее пожалуйста в чем именно (возьму на заметку).
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.11.2015, 13:24

Обращение к динамически созданному виджету
Добрый день! При подаче сигнала с другой формы, на моей форме создался виджет void...

Обращение к динамически созданному объекту
Как мне обратиться к объекту, который я создал динамически, например на этот же TextBox поставить...

Обращение к динамически созданной форме
Динамически создал форму и кнопку на ней. Не могу понять как обратиться к этой форме из обработчика...

Обращение к динамически созданной форме
Здравствуйте, создаю форму динамически: TForm* Forma = new TForm(this); ...

Обращение к динамически созданной форме из потока
Добрый вечер. Помогите, пожалуйста, разобраться со следующим: имеется форма авторизации, после её...

Как обратиться к динамически созданному объекту?
Всем привет, возникла проблема, пробую написать игру змейка, проблема при росте змейки, когда...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru