Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

ShellListView и контекстное меню

330
24 октября 2011 года
kastron
215 / / 17.09.2006
Здравствуйте!
Помогите пожалуйста решить следующую проблему:

Если кликнуть по элементу в ShellListView, то отобразится контестное меню для данного типа файла. А как вызвать общее контекстное меню щелчком правой клавишей по пустому месту в ShellListView?
Заранее спасибо.
19K
24 октября 2011 года
Alegun
269 / / 10.09.2010
Киньте на форму своё PopupMenu, создайте у него нужные пункты, затем в ShellListView -> Events -> PopupMenu (это всё в Object Inspector) выберите его имя и всё будет арбайтен:)
330
24 октября 2011 года
kastron
215 / / 17.09.2006
Спасибо. А как вывести в popup menu пункт создать? а лучше отобразить полностью меню, как на рисунке, если это возможно...
19K
24 октября 2011 года
Alegun
269 / / 10.09.2010
Походу - никак, т.к. в сырцах компонента ShellListView нет возможности вывода контекстного дефолтного меню шелла (вылетает ошибка, скорее всего, это меню такой же "вставной" PopupMenu) В drkb есть примерчик вывода контекстника из Проводника (только для объектов, как и в ShellListView), посмотрите архивчик с проектом, но, скорее всего, придётся набивать такую менюшку самостоятельно, к сожалению. Попробуйте найти исходники "самопального" эксплорера и посмотрите как это делают другие, а вдруг всё же, как-то енто дело и решается?
330
24 октября 2011 года
kastron
215 / / 17.09.2006
посмотрел пример, но это не то, что нужно.
да, как-то делается, но как не понятно.во многих программах подобную реализацию видел, но они все коммерческие.
если делать самому это меню то как получить список того, что можно создать на этом конкретном компьютере из реестра и каким образом обрабатывать клик по этим динамически созданным итемам?
330
26 октября 2011 года
kastron
215 / / 17.09.2006
и еще вопрос как перейти в ShellListView по заданному пути?
19K
26 октября 2011 года
Alegun
269 / / 10.09.2010
Цитата:
...если делать самому это меню то как получить список того, что можно создать на этом конкретном компьютере из реестра и каким образом обрабатывать клик по этим динамически созданным итемам?

Страшилка: для этого нужно что-то ну очень ужасное - изучать интерфейсы СОМ (не могу сказать определенно, что это такое и с чем их грызут, могу сказать это что-то очень сложное:-) и придется долго и нудно копаться в Shell32 и иже с ними, их достаточно много, основные из интерфейсов - IShellFolder, IContextMenu, IContextMenu2, IEnumIDList etc.

Цитата:
и еще вопрос как перейти в ShellListView по заданному пути?


Свойство ShellListView.Root

З.Ы. Оффтопчик: По-ходу появилось несколько размышлений на тему изобретения лисапета - зачем делать что-то через глючный псевдоинтерфейс Проводника, когда легко и без проблем можно поручить это самому эксплореру, вызывая его на и во время работы (ИМХО)? У шелл-компонентов на вкладке Samples есть несколько крупных недостатков: скорость добавления и обновления (если файлов много, то это очень заметно), они безбожно жрут память - Shell типы при добавлении нового файла или папки заносят в кучу целый класс (wow!!!) - TShellFolder, так что при открытии той же папки Уиндовс слопается достаточно виртуалки, да вдобавок, многие заявленные функции и процедуры у этих компонентов работают через упож. Слишком тернистый путь.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог