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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 28.01.2010, 15:36   #1
animalshadow
Пользователь
 
Аватар для animalshadow
 
Регистрация: 30.03.2009
Сообщений: 23
Вопрос проблема с TPopupMenu.(C++ Builder)

Есть 32 компонента TEdit , - zb_1,zb_2...zb_32.
Есть один компонент TPopupMenu, - PopupMenu1
Есть 11 TMenuItem'ов.

Для каждого есть Click такого плана :

Код:
void __fastcall TFrame4::L1Click(TObject *Sender)
{
zb_1->Text = "L";
   }
Так вот суть вопроса:
Как и с помощью чего можно реализовать такую штуку -
Во время click'a определялся компонент который его вызывает(один из 32) и изменялся только его text.

В общем достаточно ссылки на решение похожей ситуации или название компонента с которым стоит работать по этому вопросу.
И почему-то интуиция подсказывает, что это всё решаеться в 2 счёта .

Отчаявшись думал, - может сделать для каждого TEdit по PopupMenu, - но это и ежу понятно, что это бессмысленная затея.(А если будут не 32 , а 1000 компонентов).

Заранее спасибо за ответы.

P.S. Нашёл что про PopupComponent , но не могу понять как им пользоваться.

Последний раз редактировалось animalshadow; 28.01.2010 в 15:41.
animalshadow вне форума
Старый 28.01.2010, 16:03   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну например можно сделать наподобие такого:
Код:
void __fastcall TForm1::N11Click(TObject *Sender)
{
 TMenuItem* m;
  m=(TMenuItem*) Sender;
 TEdit* e=(TEdit*) ActiveControl;
 e->Text=m->Caption;
 }
I'm learning to live...
Stilet вне форума
Старый 28.01.2010, 22:37   #3
animalshadow
Пользователь
 
Аватар для animalshadow
 
Регистрация: 30.03.2009
Сообщений: 23
По умолчанию

Спасибо за ответ, но ... - что такое ActiveControl?
animalshadow вне форума
Старый 07.02.2010, 18:14   #4
animalshadow
Пользователь
 
Аватар для animalshadow
 
Регистрация: 30.03.2009
Сообщений: 23
По умолчанию

В общем, отложил этот вопрос на неопределённый срок, сегодня за него опять взялся, и решил его как ни странно )

Код:
 TComponent *pComponent = PopupMenu1->PopupComponent;
  if (pComponent)
  {
	if (pComponent->ClassNameIs("TEdit"))
	  (dynamic_cast<TEdit *>(pComponent))->Text = "L";
	else
	  MessageBeep(0);
  }
  else
	MessageBeep(0);
Вот так всё просто получаеться

Тему можно закрывать, т.к. вопрос решён.
animalshadow вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вызвать TPopupMenu на TButton с помощи левой кнопки мыши? Bill Gates Общие вопросы Delphi 7 08.06.2010 14:28
Проблема с С++ Builder betterbetter C++ Builder 1 19.05.2009 16:05
Проблема с С++ Builder betterbetter C++ Builder 1 19.05.2009 11:38
Проблема с MaskEdit в C++ Builder Fe_DoS C++ Builder 1 03.04.2009 23:51
Проблема с C++ Builder 6 Kocapb Софт 0 18.11.2007 18:54