11

私は、Windows XP、Vista、および7(Win32およびWin64)用のDelphiXE2でWindowsDeskbandに取り組んでいます...

必要なすべてのインターフェイス(ITrayDeskBand、IDeskBandInfo、IDeskBand2、IDeskBand)をコードに実装しましたが、すべてが正常に機能します(Vista / 7には、他の人が経験したように互換性について不平を言う警告はありません)。

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

GlassFrameフォームでプロパティを有効にしてみましSheetOfGlassたが、これは少し役に立ちません。

さらに、フォーム自体がタスクバーの上部境界を超えています。つまり、カーソルがデスクバンドのすぐ上のタスクバーの上部と一列に並んでいる場合、タスクバーのサイズを変更することはできません。

DelphiのVCLTFormタイプが舞台裏で行っていることがあり、TFormタイプをDeskbandコンテナとして互換性がないものにしていると思います...しかし、これは単なる疑いです。

さまざまな問題を説明するスクリーンショットを次に示します。

ここに画像の説明を入力してください

ご覧のとおり(上)、デスクバンドのフォームは(透明ではなく)淡く、タスクバーの上部に重なっています(タスクバーが「非表示」のときにサイズ変更と自動非表示がトリガーされるのを防ぎます)

何か案は?

UPDATE 1 さて、私は遊んでいて、フォームではなく、デスクバンドに使用されるTToolBarコントロールを作成するときに、まったく異なる動作が観察されることに気づきました。

ここに画像の説明を入力してください

3つのコントロールがあることに注意してくださいTToolButton(Glassテーマのためにテキストは事実上見えません)?また、2つのセパレーターの間にaTEditとが必要TComboBoxですが、これらはまったく表示されません。

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

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

4

1 に答える 1

14

わかりました...私はついにこれを理解しました.これは私が今まで出会った中で最もばかげたことです.

他の人の利益のために、私の調査結果をここに投稿します (私が経験したばかりの厄介な問題をあなたが経験するのを防ぐためです)。

デスクバンド フォームのすべてのコントロールを適切に表示して機能させるにVisibleは、(IDE デザイナーで) フォームのプロパティを に設定するだけTrueです。

ばかげていることはわかっていますが、機能し、簡単に再現できます。

于 2011-12-27T19:31:03.333 に答える