Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > PageControl и правая кнопка мыши.


Автор: ivan219 23.2.2007, 16:25
Я вынет все типы на основе которых создаётся PageControl TabSheet в отдельный Unit и создал свой тип TMyCustomTabControl TMyPageControl TMyTabSheet ну и сопутствующие типы те которые используются в этих.
Зарегистрировал компонент TMyPageControl всё ОК.

Проблема в следующем когда наводишь курсор на обычный PageControl и нажимаешь правую кнопку мыши то появляется меню где можно выбрать New Page т.е. новая закладка можно удалить и.т.д. но вот в моём компоненте это заделать нельзя хотя динамически из типа TMyTabSheet создаётся закладка.

Ошибок нет всё компилируясь.

Так что проблема в этом меню как его создать smile 

Автор: aktuba 23.2.2007, 16:41
Ты бы хоть код показал. Откуда остальные знают, чего ты там накодил? smile 

Автор: ivan219 23.2.2007, 17:29
А код на 1600 строк правда но в форум не влазиит smile  это обычный PageControl проблема лиш в том что при щилчке правой кнопкой мыши на компоненте не появляется то меню которое должно быть как у PageControl и только всё остальное работает.

Добавлено @ 17:31 
Цитата(aktuba @  23.2.2007,  16:41 Найти цитируемый пост)
Откуда остальные знают, чего ты там накодил?


Цитата(ivan219 @  23.2.2007,  16:25 Найти цитируемый пост)
Я вынет все типы на основе которых создаётся PageControl TabSheet в отдельный Unit


Автор: Sunvas 23.2.2007, 17:40
ivan219, ты вообще какие-то изменения в коде делал?

Автор: ivan219 23.2.2007, 17:57
Цитата(ivan219 @  23.2.2007,  16:25 Найти цитируемый пост)
Я вынет все типы на основе которых создаётся PageControl TabSheet в отдельный Unit и создал свой тип TMyCustomTabControl TMyPageControl TMyTabSheet ну и сопутствующие типы те которые используются в этих.

Я только переименовал типы TPageContoro -> TMyPageControl, TTabSheet -> TMyTabSheet, TCustomTabControl -> TMyCustomTabControl вовсём коде и болше ничего, он работает и компилится без проблем нету только этого меню.

Автор: Sunvas 23.2.2007, 18:12
ivan219, да.. Интересная проблема. Вот уже скоко долблюсь, а нигде не могу найти хотя бы зацепку.  smile 

Автор: ivan219 23.2.2007, 18:54
Может там как отдельно регестрируется в самой Delphi этоже её меню.

Да и если зделать новый клас от PageControl то это меню появляется smile значит гдето в PageControl этот зверёк сидит.

Автор: Sunvas 23.2.2007, 19:03
Хм. Я переискал везде текст previous так ничего и не нашел..  smile 

Автор: ivan219 23.2.2007, 19:11
А воще это возможно зделать такое меню может это сами разработчики Dephi так зделали а самому такое нельзя реализовать smile 
user posted image

Автор: aktuba 24.2.2007, 02:43
Цитата

 такое меню может это сами разработчики Dephi так зделали


Нет, свои пункты в контекстное меню Delphi добавляют и сторонние компоненты, например DevExpress...

user posted image

Автор: ivan219 24.2.2007, 13:31
aktuba, А исходники можеш выложить.

Автор: Bose 15.3.2007, 21:54
ivan219, сам не пробовал, но, примерное направление могу указать..

посмотри функцию:
Код

RegisterComponentEditor(ComponentClass: TComponentClass; ComponentEditor: TComponentEditorClass);


Для начала видимо нужно создать класс редактора унаследованный от TComponentEditorClass

Пункты в контестное меню добавляются с помощью методов:
GetVerbCount и GetVerb.

В общем посмотри в хэлпе класс: 
Код

TComponentEditor

Там всё довольно подробно расписано.

Автор: ivan219 15.3.2007, 23:05
Bose, спасибо посмотрю.

Автор: larinva 18.9.2009, 10:14
Всем привет подскажите как вызвать виндовское меню правой кнопки мыши в ListBox http://ipicture.ru/

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)