Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Как показать не отдельно формируемое меню кнопки ПУСК, а иерархическое содержимое десктопа

Автор: Александр Малыгин

Этот фриварный проект может принести как практическую, так и теоретическую пользу. Фактически это иллюстрация к статье известного гуру Акжана Абдулина "Пространство имен оболочки Windows" (есть в Свитках и на его личном сайте). Именно она послужила толчком и основанием для этой разработки.

Идея проста. Хотелось получить в Windows функциональность кнопки Warp оболочки WarpCenter операционной системы OS/2 Warp 4.0 Merlin. Отличается она от кнопки Start Explorer'а тем, что показывает не отдельно формируемое меню, а иерархическое содержимое десктопа. То есть, все, что есть на десктопе и во вложенных папках, она разворачивает в виде меню и позволяет запускать.

Скачать проект: exe-файл + исходные коды Warp.zip (52 K)

Программа ставится в автостарт и помещает свой значок в System Tray.

Исходные тексты могут ответить на массу часто задаваемых вопросов о программировании в Windows. Вот некоторые темы:
  • - Получение и использование папок рабочего стола, перечисление всех объектов.
  • - Работа без VCL, использование Win32API.
  • - Организация неконсольной программы без видимого окна.
  • - Работа с "иконкой в Tray" без компонентов ;)
  • - Использование меню из ресурса и меню "ручной сборки", иконки в меню (стиль OWNERDRAW).
  • - Отслеживание изменений в директории (в частности - папка десктопа).
  • - Получение иконок для объектов рабочего стола.
  • - Контекстное меню для объектов рабочего стола.
  • - Операции с идентификаторами объектов оболочки (pidl).
  • - Хранение опций в реестре.
  • - И многое другое.
Единственный большой недостаток - отсутствие комментариев.

В основу положен принцип "Лучше день потерять, потом за пять минут долететь" (с) мультик. При старте зачитываются все объекты, зато потом меню работает быстро. Некоторые известные спецпапки десктопа по-умолчанию не развертываются во вложенное меню (можно отключить в конфигурации). Диски в "My Computer" тоже не развертываются - было бы слишком много объектов. Изменения на самом десктопе контролируются и запускается процедура перечитывания объектов (во вложенных папках контроля нет).

Горячая клавиша вызова меню - Ctrl-Alt-F12. Вызов контекстного меню для выбранного объекта - Ctrl-Enter или правая кнопка мыши.

Проект компилируется в D5, первоначально был написан в среде D3 (есть различия в инициализации COM). Программа была разработана в 1999 году в порядке изучения Delphi и методов работы с API и объектами эсплорера.

Отдельное спасибо Акжану Абдулину за вышеупомянутую статью о пространстве имен, а также Анатолию Тенцеру за его "конструктор юного любителя иконок в SysTray" (модуль TaskBar.pas - его, без изменений).

Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay