2011-12-27 19 views
11

Tôi đang làm việc trên Windows Deskband trong Delphi XE2 cho Windows XP, Vista và 7 (Win32 và Win64) ...Làm thế nào để thực hiện (Taskbar Toolbar) Mẫu Deskband tôi trong suốt

tôi đã thực hiện tất cả các các giao diện cần thiết (ITrayDeskBand, IDeskBandInfo, IDeskBand2, IDeskBand) trong mã của tôi và tất cả hoạt động chính xác như nó cần (không có cảnh báo trên Vista/7 phàn nàn về khả năng tương thích như những người khác đã gặp phải).

Vấn đề tôi gặp phải là Biểu mẫu băng thông của tôi xuất hiện với một dải không trong suốt. Ngoài ra, chỉ một số Điều khiển nhất định được hiển thị (trong trường hợp này là TBitBtn và TImage chứa PNG). Tôi cần nó để hiển thị TEdit và TComboBox đối tượng đúng cách quá, nhưng họ sẽ không xuất hiện ở tất cả.

Tôi đã thử bật các thuộc tính GlassFrameSheetOfGlass trên Biểu mẫu của tôi, nhưng điều này không giúp ích một chút.

Hơn nữa, biểu mẫu vượt quá ranh giới trên cùng của thanh tác vụ, nghĩa là bạn không thể thay đổi kích thước thanh tác vụ nếu con trỏ ở trên cùng với thanh tác vụ ngay phía trên Deskband của tôi.

Tôi tin rằng có một cái gì đó của Delphi VCL TForm loại đang làm đằng sau hậu trường mà làm cho loại TForm không tương thích như một container Deskband ... nhưng đây chỉ là một sự nghi ngờ.

Dưới đây là một ảnh chụp màn hình minh họa vấn đề khác nhau:

enter image description here

Như bạn có thể nhìn thấy (ở trên), Mẫu của Deskband là nhạt (thay vì trong suốt), nó chồng lên phía trên cùng của Taskbar (ngăn chặn thay đổi kích thước và Tự động ẩn kích hoạt khi Thanh tác vụ bị "ẩn")

Bất kỳ ý tưởng nào?

UPDATE 1 Được rồi, tôi đã được chơi xung quanh và nhận thấy rằng một hành vi hoàn toàn khác nhau được quan sát thấy khi tạo một điều khiển TToolBar được sử dụng cho các Deskband, chứ không phải là một hình thức:

enter image description here

Thông báo có ba điều khiển TToolButton (với văn bản của chúng hầu như vô hình do chủ đề Kính)? Cũng cần có một số TEditTComboBox giữa hai dấu tách, nhưng những từ chối này sẽ hiển thị.

Bạn cũng chú ý đến việc tạo tác phẩm (sự lặp lại của các biểu tượng trên thanh tác vụ thực tế)?

Tôi không chắc đây có phải là một bước đi đúng hướng hay không, nhưng nó có thể giúp bạn (hoặc những người khác) suy ra một giải pháp!

+0

Bạn đã thử sử dụng thuộc tính 'AlphaBlend' của biểu mẫu chưa? – Pateman

+0

Có ... hoàn toàn không có kết quả! Có vẻ như tài sản duy nhất tạo nên bất kỳ sự khác biệt nào là GlassFrame/SheetOfGlass ... nhưng điều đó chỉ đưa tôi đến điểm được hiển thị trong pic! – LaKraven

+0

Bạn đã thử kết hợp 'GlassFrame' với' AlphaBlend' chưa? :) – Pateman

Trả lời

14

Được rồi ... Tôi đã cuối cùng là đã tìm ra điều này và đó là điều vô lý nhất mà tôi từng gặp.

Tôi đăng các phát hiện của mình ở đây vì lợi ích của người khác (để giúp bạn vượt qua những phiền toái mà tôi vừa trải qua).

Để có được tất cả của các điều khiển trên Form Deskband bạn để hiển thị và hoạt động đúng, bạn chỉ cần thiết lập các Visible tài sản của Form của bạn (trong thiết kế IDE) để True.

Thật lố bịch, tôi biết, nhưng nó hoạt động và dễ lặp lại.

+0

Có phải đó là False theo mặc định? –

+0

Có ... ít nhất là trong XE2, thuộc tính 'Hiển thị' của VCL TForm mặc định là' False' – LaKraven

+0

LOOOL !! điều này thực sự là một cái gì đó cho bức tường của "WTF" phát hiện tốt! – ComputerSaysNo

Các vấn đề liên quan