調べたつもりですが、既出でしたらすみません。
XPスタイルに対応させたくて、
XPManifestコントロールをFormに配置したのですが、実行すると
Colorプロパティに設定した値が無視され、TLabelの背景色が抜けてしまいます。
(TransparentをTrueにしたような感じ)
クラシックスタイル環境下で実行すると、設定した背景色で描画されます。
これはXPスタイルの仕様なのでしょうか?
ラベルの背景に矩形の色をつけたい場合、
TPanelなどと併用するしかないのでしょうか?
使用環境は
Turbo Delphi Explorer 2006
Windows XP Pro SP2
です。
> XPスタイルに対応させたくて、
> XPManifestコントロールをFormに配置したのですが、実行すると
> Colorプロパティに設定した値が無視され、TLabelの背景色が抜けてしまいます。
> (TransparentをTrueにしたような感じ)
私も昔、Delphi7の時にはまりました。
Delpi7の時と同じ方法で対処できるなら、下記のようにしてみてください。
1.PanleのColor値を変更する。
2.ParentBackground プロパティを false → true → false
以上です。
------------------------------------------------------------------
Windows Vista Ultimate *64 / Delphi 2006 Pro Up2 / 2007 Pro
Yasuhiko Yoriki 寄木康彦
mailto:yor...@yoriki.jp http://www.yoriki.jp/
Labelを乗せているPanelで、教えていただいた方法を試しましたが、
残念ながら解決されませんでした。
Label自身はParentBackgroundがないので、変わりにParentColorで同様のことを
してみましたがやはり改善されませんでした。
Delphi7で対処の実績があるとのことなので、
XPスタイルの仕様というわけではないんでしょうか?
もう少し試行してみます。
TLabelのTransparentプロパティがFalseとして.DFMファイルに保存されていないからか
もしれません
TLabelのTransparentプロパティをいったんFalseからTrueに変更後、再度Falseに戻して
みてください。
私のフォームでは、その結果以下のような.DFMファイルが保存され、TLabelの背景色が
XPManifest環境下でも表示されました。
------------------------------------
object Form1: TForm1
Left = 0
Top = 0
Caption = 'Form1'
ClientHeight = 239
ClientWidth = 383
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object Label1: TLabel
Left = 96
Top = 56
Width = 31
Height = 13
Caption = 'Label1'
Color = clRed
ParentColor = False
Transparent = False
end
object XPManifest1: TXPManifest
Left = 280
Top = 88
end
end
------------------------------------
--
高橋智宏
Java読書会( http://www.javareading.com/bof/ )
すみません、原文を読み間違えまして、Panelと勘違いしてしまいました。
Lableでしたね。
Transparent のプロパティの false → true → false ではだめでしょうか。
もしそれでだめなら、同じように、parentcolor でも確かめてみるといいかもし
れません。
Delphi 7 での対処法が記憶の彼方に飛んでしまっていますので、見当違いであ
れば申し訳ありません。
TLabelのTransparentを、False → True → False
とすることで、.DFMに、
「Transparent = False」が書き込まれることと、
実行時に正しく背景色が表示されるのを確認しました。
Delphi7も使っていましたが、XPスタイルに対応させたことが無かったため、
こんな問題があることも知りませんでした。
これで安心してXPスタイルに対応できます。
ありがとう御座いました。
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
_/ 株式会社ワイズクラック
_/ 中根 猛始 <t.na...@wisecrack.co.jp>
_/
_/ 〒460-0002 名古屋市中区丸の内3-6-27(EBSビル 4F)
_/ TEL:052-968-2560 FAX:052-968-2561