Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.24;
Скачать: 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 вся ветка

Текущий архив: 2006.12.24;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.056 c
6-1154525928
mnm
2006-08-02 17:38
2006.12.24
TWSocket пул сокетов


15-1165102323
SkySpeed
2006-12-03 02:32
2006.12.24
В чём ошибка в проекте С++?


3-1160572206
Alexander_K
2006-10-11 17:10
2006.12.24
Значение поля из ClientDataSet


2-1165078968
Kostafey
2006-12-02 20:02
2006.12.24
SQL-редактор


2-1165513096
aleko
2006-12-07 20:38
2006.12.24
работа с Word