powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Объекты в Buildere
13 сообщений из 13, страница 1 из 1
Объекты в Buildere
    #33270358
NNNata:)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня следующий вопросик к вам: у меня есть
AnsiString var="Label1";
var->name; //????????
Что мне добавить в эту строку, чтобы он под var понимал не AnsiString, а объект Label1
...
Рейтинг: 0 / 0
Объекты в Buildere
    #33270444
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не совсем понятно, что ты хочешь.

Если обращаться к любому компоненту по его имени, заранее неизвестному, то
C++Builderdicates whether a given component is owned by the component.

TComponent* __fastcall FindComponent(const AnsiString AName);

Description

FindComponent returns the component in the Components property array with the name that matches the string in the AName parameter. Use FindComponent to determine whether a given component is owned by another.

FindComponent is not case sensitive.
если ........ ну что тут еще придумать ?

TLabel *var=Label1;
var->Name;
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Объекты в Buildere
    #33270501
NNNata:)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Карабас БарабасНе совсем понятно, что ты хочешь.

Если обращаться к любому компоненту по его имени, заранее неизвестному, то
C++Builderdicates whether a given component is owned by the component.

TComponent* __fastcall FindComponent(const AnsiString AName);

Description

FindComponent returns the component in the Components property array with the name that matches the string in the AName parameter. Use FindComponent to determine whether a given component is owned by another.

FindComponent is not case sensitive.
если ........ ну что тут еще придумать ?

TLabel *var=Label1;
var->Name;

Понимаешь из файла я читаю Name компонентов формы и их Caption s, эти данные записываю в AnsiString-и, а потом в программе соответстующему компоненту со считанным Name я хочу присвоить соответствующий Caption.

Функция FindComponent - дело хорошее, но она возвращает TComponent, а Caption - не член класса TComponent.
...
Рейтинг: 0 / 0
Объекты в Buildere
    #33270514
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эх, мне бы твои проблемы !

Код: plaintext
1.
2.
3.
4.
TLabel *L=dynamic_cast<TLabel*>(FindComponent(cccnnn));
if (L)
{
 ........
}

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Объекты в Buildere
    #33270517
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NNNata:)У меня следующий вопросик к вам: у меня есть
AnsiString var="Label1";
var->name; //????????
Что мне добавить в эту строку, чтобы он под var понимал не AnsiString, а объект Label1
Странные, однако, у Вас запросы...
Если говорить по сути, то Не помню ктохоть 100 раз скажи "Сахар" во рту сладко не станет
Здесь надо четко понять различие между именем объекта ("Label1"), сохраненном в переменной, и самим объектом (экземпляром класса Tlabel с именем "Label1")
Если же Вы хотите найти на форме объект с именем "Label1", то тогда необходим примерно следующий код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
AnsiString var="Label1";
for (int i= 0 ;i<Form1->ControlCount;i++)
{
 if(Form1->Controls[i]->Name==var)
  Application->MessageBox(Form1->Controls[i]->Name.c_str(),"",MB_OK);
}
Application->MessageBox("End of scope!","",MB_OK);
...
Рейтинг: 0 / 0
Объекты в Buildere
    #33270536
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав C.
Код: plaintext
1.
2.
3.
4.
5.
for (int i= 0 ;i<Form1->ControlCount;i++)
{
 if(Form1->Controls[i]->Name==var)
  Application->MessageBox(Form1->Controls[i]->Name.c_str(),"",MB_OK);
}
Application->MessageBox("End of scope!","",MB_OK);
конечно, можно все руками делать, но в данном случае, FindComponent сделает тоже самое
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Объекты в Buildere
    #33270565
NNNata:)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Станислав C....
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
AnsiString var="Label1";
for (int i= 0 ;i<Form1->ControlCount;i++)
{
 if(Form1->Controls->Name==var)
  Application->MessageBox(Form1->Controls[i]->Name.c_str(),"",MB_OK);
}
Application->MessageBox("End of scope!","",MB_OK);


В том-то и дело, что Form1->Controls [i] не имеет свойства Caption, которое мне необходимо установить.
...
Рейтинг: 0 / 0
Объекты в Buildere
    #33270599
NNNata:)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Карабас БарабасЭх, мне бы твои проблемы !

Код: plaintext
1.
2.
3.
4.
TLabel *L=dynamic_cast<TLabel*>(FindComponent(cccnnn));
if (L)
{
 ........
}

Этот код идет хорошо, но надо указывать объект dynamic_cast<TLabel*> , например для TButton надо будет отдельную строку писать. Чего-то общего наверное нет, я правильно понимаю?
...
Рейтинг: 0 / 0
Объекты в Buildere
    #33270600
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NNNata:)В том-то и дело, что Form1->Controls не имеет свойства Caption, которое мне необходимо установить. Объекты в Buildere
...
Рейтинг: 0 / 0
Объекты в Buildere
    #33270606
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NNNata:) Карабас БарабасЭх, мне бы твои проблемы !

Код: plaintext
1.
2.
3.
4.
TLabel *L=dynamic_cast<TLabel*>(FindComponent(cccnnn));
if (L)
{
 ........
}

Этот код идет хорошо, но надо указывать объект dynamic_cast<TLabel*> , например для TButton надо будет отдельную строку писать. Чего-то общего наверное нет, я правильно понимаю?
...
Рейтинг: 0 / 0
Объекты в Buildere
    #33270621
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для сохранения свойств, кстати, есть хороший компонет FormStorage в RX-ах.
Ну и говорят, что много еще подобного в инете.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Объекты в Buildere
    #33270626
NNNata:)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Карабас БарабасДля сохранения свойств, кстати, есть хороший компонет FormStorage в RX-ах.
Ну и говорят, что много еще подобного в инете.

Спасибо за советы, пригодились.
...
Рейтинг: 0 / 0
Объекты в Buildere
    #33271016
Станислав C.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NNNata:) Станислав C....
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
AnsiString var="Label1";
for (int i= 0 ;i<Form1->ControlCount;i++)
{
 if(Form1->Controls->Name==var)
  Application->MessageBox(Form1->Controls[i]->Name.c_str(),"",MB_OK);
}
Application->MessageBox("End of scope!","",MB_OK);


В том-то и дело, что Form1->Controls [i] не имеет свойства Caption, которое мне необходимо установить.


Если говорить о Label, то хорошо подходит:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 AnsiString var="Label1";
 TControl *Comp;

 ....

 for (int i= 0 ;i<Form1->ControlCount;i++)
  if(Form1->Controls[i]->Name==var)
    {
      Comp=Form1->Controls[i];
      Comp->SetTextBuf("Your own text");
      Comp->Refresh();
     }
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Объекты в Buildere
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]