Добавить ярлык в TForm или Panel.Transparent? - PullRequest
0 голосов
/ 03 декабря 2011

Чтобы помешать сборщикам нитей, позвольте мне начать с этого, я искал здесь с этим и не смог найти ответ, и да, я также прокрутил «Похожие вопросы» ... Добавление ярлыков в TForm

Я хочу перетащить некоторые ярлыки с рабочего стола в TForm в моем приложении.Я использую великолепный пакет Drag Drop Suite (DDS) от Андерса Меландера.

Я попытался нанести TImage на форму, но DDS не выпал на изображение, поэтому я добавил TPanel с TImage на нем.Затем я могу зайти на панель и назначить изображение для TImage.Picture.Проблема заключалась в том, что у Panel нет прозрачного свойства, поэтому ярлык на форме выглядит неуклюже с видимой панелью за ней.

Мне нужно иметь возможность перейти на TImage или сделать прозрачным базовый TPanel.

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

Спасибо

Ответы [ 2 ]

3 голосов
/ 03 декабря 2011

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

Прошло много времени с тех пор, как я реализовал перетаскивание, но я предполагаю, что вы вызываете какой-то API и передаете ему дескриптор панели? Это отвечает на вопрос, почему вы не можете использовать TImage. TImage - это графический элемент управления, элемент управления без дескриптора, который полагается на своего родителя для получения сообщений и отрисовки самого себя.

Должна быть возможность использовать форму, поскольку она также имеет дескриптор.

1 голос
/ 05 декабря 2011

Если TImage находится непосредственно на TForm, тогда пусть TForm обрабатывает падение, не нужно TPanel.Операции перетаскивания OLE (которые реализуются компонентами Ander) предоставляют координаты, где происходит перетаскивание.TForm должен уметь обнаруживать, когда перетаскивание находится над областью, занятой TImage, и какие типы данных перетаскиваются, и разрешать только удаление поддерживаемых типов в этой области, извлечение удаленных данных и обновление TImage по мере необходимости и отрицание чего-либо еще, что не соответствует этим критериям.

...