0 / 0 / 1
Регистрация: 06.01.2018
Сообщений: 33
1
RAD 2009-XE3

Один компонент TPopupMenu с одной функцией, на 2 компонента TLabel?

18.09.2018, 21:24. Показов 384. Ответов 2
Метки нет (Все метки)

На форме есть один компонент PopupMenu, и 2 Label'а. В свойствах Label'ов в поле PopupMenu задаю PopupMenu1.
Создаю в компоненте PopupMenu1 одну кнопку, с функцией показа панели: Panel1->Visible = true;


Как сделать так, чтобы при нажатии на Label1 - показывалась панель №1, а при нажатии на Label2 - отображалась панель №2

C++
1
2
3
4
5
void __fastcall TForm1::N4Click(TObject *Sender)
{
   if (FindComponent("Label1")) {Panel1->Visible = true;
   else if (FindComponent("Label2")) {Panel2->Visible = true;}
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.09.2018, 21:24
Ответы с готовыми решениями:

Заполнение несколько свойств компонента одной функцией
Собственно, то что я пытаюсь сделать в название темы. Можно ли так? Всё описано так: private...

Свойство color компонента TLabel
Что значит это свойство - меняю его, а цвет лэйбла не меняется. Меняется только когда я меняю...

Создание компонента на основе TLabel
можете подсказать как в билдере инсталировать компонет? потмоу что в учебнике котором я читаю -...

Как в TollBar сделать, чтоб на одной строке (один под другим) были 2 компонента?
Друзья! Подскажите источник, где можно подробно почитать о всех компонентах билдера. Либо хотябы...

2
Практикантроп
4697 / 2610 / 504
Регистрация: 23.09.2011
Сообщений: 5,623
19.09.2018, 00:21 2
C++
1
2
3
4
5
void __fastcall TForm1::N4Click(TObject *Sender)
{
   if(PopupMenu1->PopupComponent->GetNamePath()=="Label1") Panel1->Visible=true;
   if(PopupMenu1->PopupComponent->GetNamePath()=="Label2") Panel2->Visible=true;
}
Добавлено через 17 минут
А если нужно, чтоб открывалась одноимённая - в цифре - с меткой панель и скрывались все остальные, то чуть сложнее__
C++
1
2
3
  int nu=PopupMenu1->PopupComponent->GetNamePath().SubString(6,1).ToIntDef(0);
  if(nu) for(int i=0;i<ComponentCount;i++) if(Components[i]->ClassNameIs("TPanel"))
    ((TPanel*)Components[i])->Visible = Components[i]->Name=="Panel"+IntToStr(nu);
0
Модератор
7334 / 4805 / 2010
Регистрация: 21.01.2014
Сообщений: 20,380
Записей в блоге: 3
19.09.2018, 09:59 3
C++
1
2
3
4
5
6
7
void __fastcall TForm1::N1Click(TObject *Sender)
{
  TLabel *lbl[N] = {Label1, Label2, Label3, ..., LabelN};
  TPanel *pnl[N] = {Panel1, Panel2, Panel3, ..., PanelN};
  for(int i = 0; i < N; i++)
   pnl[i]->Visible = PopupMenu1->PopupComponent->GetNamePath() == lbl[i]->Name;
}
Где N - целое число, равное количеству меток и соответствующих этим меткам панелей
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.09.2018, 09:59

Обработчик событий для компонента (TLabel, TButton)
Привет. Задание создать Design-Time форму, создать Run-Time форму. На дезайн тайм есть какие-то...

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

Создать приложение, выводящие компонент TLabel под заданным углом на форме
Создать приложение, выводящие компонент TLabel под заданным углом на форме. Помогите пжлалуста....

Нужно создать интерфейс с использованием основных компонент TLabel, TButton, TEdit
как на картинке,можете написать код пожалуйста на C++


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.