2011-12-27 4 views
11
私は、Windows XP、Vistaと7(Win32とWin64の)のためのDelphi XE2でWindowsのデスクバンドに取り組んでいます

...全て私のコードで必要なインタフェース(ITrayDeskBand、IDeskBandInfo、IDeskBand2、IDeskBand)を使用していて、すべてが正しく動作することに注意してください(Vista/7では他の人が経験したように互換性について警告しません)。私が実装しました</p> <p>

私の問題は、私のデスクバンドフォームが不透明なバンドで表示されることです。また、特定のコントロールのみが表示されます(この場合、PNGを含むTBitBtnおよびTImage)。 TEditオブジェクトとTComboBoxオブジェクトを適切に表示する必要がありますが、表示されません。

フォームにGlassFrameSheetOfGlassプロパティを有効にしようとしましたが、これは1ビットには役立ちません。

さらに、フォーム自体がタスクバーの上端を超えています。つまり、カーソルがデスクトップバーのすぐ上にあるタスクバーの上端とインラインである場合はタスクバーのサイズを変更できません。

DelphiのVCL TForm型が、TForm型をDeskbandコンテナとして互換性のないものにしていると考えていますが、これはちょっと疑わしいことです。

ここで様々な問題を示すスクリーンショットです:あなたが(上記)を参照することができるよう

enter image description here

を、デスクバンドのフォームは、淡い(代わりに透明)であり、それは(リサイズ防止タスクバーの上部に重なっタスクバーが「隠されているときに自動的にトリガーする」)

アイデアはありますか?

UPDATE 1 さて、私はむしろフォームより、遊んとTToolBarコントロールを作成するときに全く異なる振る舞いをデスクバンドのために使用されることが観察されたことに気づいてきた:

enter image description here

注意:Glassテーマのためにテキストが実質的に見えない3つのTToolButtonコントロールがあります。また、2つの区切り文字の間にTEditTComboBoxがある必要がありますが、これらは全く表示されません。

アーチファクト(実際のタスクバーアイコンの繰り返し)にも注意してください。

これが正しい方向に進んでいるかどうかはわかりませんが、あなた(または他の人)が解決策を推論するのに役立つかもしれません。

+0

フォームの 'AlphaBlend'プロパティで手を加えてみましたか? – Pateman

+0

はい...絶対に役に立たない!それはGlassFrame/SheetOfGlassですが、違いがあるのは唯一のプロパティだと思われますが、それは写真に表​​示されているポイントまでしか届かないのです! – LaKraven

+0

'GlassFrame'と' AlphaBlend'を組み合わせてみましたか? :) – Pateman

答えて

14

いいえ...私はを最終的にとしました。これは私が今までに遭遇したことの中で最も不条理なことです。

他の人の利益のために私の所見をここに掲載しています(あなたが私が終わった厄介者を救うために)。

Trueに表示され、正しく機能、単純に(IDEデザイナで)自分のフォームのVisibleプロパティを設定するために、あなたのデスクバンドフォーム上のコントロールのすべてを取得します。

私は知っていますが、うまくいきますが、簡単に再現できます。

+0

デフォルトではFalseですか? –

+0

はい...少なくともXE2、VCLではTFormの 'Visible'プロパティのデフォルトは' False' – LaKraven

+0

LOOOL !!これは本当に "WTF"良い発見の壁のための何かです! – ComputerSaysNo

関連する問題