Вниз
Скачать: CL | DM;

Вопросец по динамическому созданию контролов   Найти похожие ветки 

 
dreamse   (2006-12-06 01:11) [0]

Создаю динамически POPupmenu присваеваю это меню динамически созданому компоненту : кнопке

В Onclick пункта меню вызываю процедуру :


OnClick := DeleteMenuClick;


Вопрос как в процедуре


procedure DeleteMenuClick(Sender: TObject);


Узнать имя кнопки с которой вызали popup меню ?

Пробывал код :


ShowMessage((Sender as TMenuItem).ClassName);


но он возвращает только TMenuItem :(

Нужно определить именно имя кнопки с корой было вызвано это меню. Сколько кнопок неизвестно


 
dreamse   (2006-12-06 01:13) [1]

Вернее пробывал :

ShowMessage(Sender.ClassName);

Он и пишет TMenuItem а дальше продвинуться немогу :(


 
Германн ©   (2006-12-06 01:47) [2]


> dreamse   (06.12.06 01:11)
>
> Создаю динамически POPupmenu

А POPupmenu - это TPopupMenu?
Если да, то его свойство PopupComponent тебе в руки.


 
dreamse   (2006-12-06 02:20) [3]

> Германн ©   (06.12.06 01:47) [2]

Направление получил, проблема в том что в процедуре я получаю уже не TPopupMenu а его потомка TMenuItem как из TMenuItem вытащить родителя а уж из него PopupComponent ?


 
dreamse   (2006-12-06 03:01) [4]

Код : ShowMessage(TPopupMenu(TMenuItem(sender).parent).PopupComponent.Name);

Выдаёт ошибку

а код :
без parent выдаёт пустую строку  :(  

ShowMessage(TPopupMenu(TMenuItem(sender)).PopupComponent.Name);

Куда копать ?


 
Loginov Dmitry ©   (2006-12-06 07:49) [5]

> ShowMessage(TPopupMenu(TMenuItem(sender).parent).PopupComponent.Name)


Попробуй Owner вместо parent


 
Плохиш ©   (2006-12-06 11:13) [6]


> dreamse   (06.12.06 03:01) [4]
> Код : ShowMessage(TPopupMenu(TMenuItem(sender).parent).PopupComponent.
> Name);
>
> Выдаёт ошибку

Нравятся мне всегда такие сообщения. Нет в делфи такого сообщения "Ошибка".

> Куда копать ?

Ну там где что-то выдаётся обычно описано "куда копать"


 
Anatoly Podgoretsky ©   (2006-12-06 11:23) [7]

> Плохиш  (06.12.2006 11:13:06)  [6]

> Ну там где что-то выдаётся обычно описано "куда копать"

От забора до обеда.


 
Stanislav ©   (2006-12-06 11:27) [8]

ShowMessage((Sender as TMenuItem).Name); а так?


 
dreamse   (2006-12-06 17:21) [9]

> Stanislav ©   (06.12.06 11:27) [8]

Нет :)

Вот так : ShowMessage(TPopupMenu(TMenuItem(sender).GetParentMenu).PopupComponent.Name);

Всем спасибо. Тема закрыта.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.027 c
4-1156116042
Speak
2006-08-21 03:20
2006.12.24
как потушить монитор из консольного приложения


6-1153678565
Vitaliy
2006-07-23 22:16
2006.12.24
Сокеты, таймаут


2-1165400497
Алик
2006-12-06 13:21
2006.12.24
Сжатие AVI-файла


3-1160718078
ArCtic
2006-10-13 09:41
2006.12.24
Поиск в таблице paradox 7 (*руб*)


15-1165184452
Pr!m@ry
2006-12-04 01:20
2006.12.24
Пароль от ICQ




   Наверх