Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.11.18;
Скачать: CL | DM;

Вниз

не показывается popupmenu   Найти похожие ветки 

 
Sergey2   (2007-10-23 17:16) [0]

Есть основной класс TClass1 = class(TCustomControl) он содержит массив элементов из экземпляров класса TClass2 = class(TCustomControl). Внутри каждого экземляра класса TClass2 должно жить своё попап меню.
Создаю след образом:


var
 mi: TMenuItem;
begin
 fPopupMenu := TPopupMenu.Create(Self);
 mi := TMenuItem.Create(Self);
 fPopupMenu.Items.Add(mi);
 fPopupMenu.AutoPopup := True;
 PopupMenu := fPopupMenu;


классом TClass1 перехватываю нажатие мыши и передаю в каждый экземпляр (если клик находится именно в бордере)- с левой клавишей проблем нет, а по правой клавише - увы попап не вызывается. Причем попап есть - в каждом экземпляре сидит именно свой скреэченный попап.... если же принудительно стартовать попапменю

  TCLass2.PopupMenu.Popup(X, Y)

то нужный попап начинает показываться - но координаты совершенно не те - они абсолютные чтоли какие то. тоесть отсчитываются от верхнего левого угла десктопа, а не там где я пыркнул мышкой.

Вопрос заключается в том - почему же всё таки не всплывает меню?...


 
clickmaker ©   (2007-10-23 17:19) [1]

ClientToScreen()


 
Sergey2 ©   (2007-10-23 17:25) [2]

> clickmaker
ну это да, но всё таки имхо как то не правильно это принудительно вызывать. нажатие правой клаиши в класс TClass2 приходит - но попап почемуто не стартуется


 
clickmaker ©   (2007-10-23 17:45) [3]


> PopupMenu := fPopupMenu;

а вот это зачем?


 
Sergey2 ©   (2007-10-23 17:52) [4]

"привязать" созданное меню к контролу. на форму когда кидаешь TMenuPopup- ты же указываешь в проперти.


 
Джо ©   (2007-10-23 17:53) [5]

> [4] Sergey2 ©   (23.10.07 17:52)
> "привязать" созданное меню к контролу. на форму когда кидаешь
> TMenuPopup- ты же указываешь в проперти.

Что за бред, простите...


 
Sergey2 ©   (2007-10-23 17:57) [6]

PopupMenu property (TControl)
Identifies the pop-up menu associated with the control.


 
Palladin ©   (2007-10-23 17:59) [7]


> Джо ©   (23.10.07 17:53) [5]

никогда PopupMenu не пользовался? :)


> Sergey2 ©

где-то что-то ты сделал не так... и явно не в вышеприведенном участке кода...


 
clickmaker ©   (2007-10-23 18:01) [8]


> [4] Sergey2 ©   (23.10.07 17:52)


fPopupMenu лишнее

в любом случае, ставь бряк в Controls.pas
procedure TControl.WMContextMenu(var Message: TWMContextMenu);

и смотри, почему там меню не показывается


 
Джо ©   (2007-10-23 18:01) [9]

> [7] Palladin ©   (23.10.07 17:59)
>
> > Джо ©   (23.10.07 17:53) [5]
>
> никогда PopupMenu не пользовался? :)

Не помню, кажется, пользовался когда-то :)
Я, видимо, просто автора не понял. Работать и отвечать в форуме — несомненное зло.


 
Palladin ©   (2007-10-23 18:04) [10]

проблема ясна... назначенное свойство TControl.PopupMenu не хочет работать... но суть ошибки где-то в другом месте, скорее всего в том - что fPopupMenu долго не живет... ну или свойство PopupMenu очищается в какой то момент...


 
Kolan ©   (2007-10-23 18:04) [11]

> Работать — несомненное зло.

:)


 
Palladin ©   (2007-10-23 18:07) [12]

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


 
Amoeba ©   (2007-10-23 18:24) [13]

Автор, судя по всему, самое существенное в своем коде скрыл.



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

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

Наверх




Память: 0.47 MB
Время: 0.04 c
15-1192094316
YL
2007-10-11 13:18
2007.11.18
VCLSkin + TcxPageControl


15-1192485515
Германн
2007-10-16 01:58
2007.11.18
<OffTop> Любимая музыка


15-1192607772
de.
2007-10-17 11:56
2007.11.18
LIKE АБВ%


2-1193297234
em240
2007-10-25 11:27
2007.11.18
CheckListBox+IndexOfObject


15-1192130242
Ezorcist
2007-10-11 23:17
2007.11.18
Оцените самописную софтину.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский