Я работаю над Windows Deskband в Delphi XE2 для Windows XP, Vista и 7 (Win32 и Win64) ...
Я реализовал все необходимые интерфейсы (ITrayDeskBand, IDeskBandInfo, IDeskBand2, IDeskBand) в своем коде, и что все работает именно так, как и должно быть (на Vista / 7 нет предупреждений о совместимости, как это испытывали другие).
Проблема, с которой я столкнулся, заключается в том, что моя форма для настольной ленты имеет непрозрачную полосу Кроме того, отображаются только определенные элементы управления (в этом случае TBitBtn и TImage, содержащие PNG). Мне нужно, чтобы он правильно отображал объекты TEdit и TComboBox, но они вообще не будут отображаться.
Я пытался включить свойства GlassFrame
и SheetOfGlass
в моей форме, но это не помогает ни на шаг.
Кроме того, сама Форма выходит за верхнюю границу панели задач, а это означает, что вы не можете (например) изменить размер панели задач, если курсор находится на одной линии с верхом панели задач непосредственно над моей панелью управления.
Я полагаю, что что-то типа Delphi VCL TForm делает за сценой, что делает тип TForm несовместимым с контейнером Deskband ... но это всего лишь подозрение.
Вот скриншот, иллюстрирующий различные проблемы:
Как вы можете видеть (выше), форма рабочего стола бледная (вместо прозрачного), она перекрывает верхнюю часть панели задач (предотвращая изменение размера и запуск автоматического скрытия, когда панель задач "скрыта")
Есть идеи?
ОБНОВЛЕНИЕ 1
Хорошо, я поиграл и заметил, что при создании элемента управления TToolBar, который будет использоваться для десктопа, вместо формы наблюдается совершенно другое поведение:
Обратите внимание, что есть три TToolButton
элемента управления (их текст практически невидим из-за темы Glass)? Между двумя разделителями также должно быть TEdit
и TComboBox
, но они вообще не отображаются.
Также обратите внимание на артефакт (повторение значков на панели задач)?
Я не уверен, является ли это шагом в правильном направлении или нет, но это может помочь вам (или другим) вывести решение!