喫茶XRAYトップページ

[スレッド全体
]

[5233] plExplorerFolderTreeにて(何回目だ? 苦笑)返信 削除
2011/9/12 (月) 00:39:02 Sara
Mr.XRAYさん こんばんわ。

Delphi Xe2で標準でスキンの変更ができるようになったので、
機能を取り入れてみたところ・・・plExplorerFolderTreeの
背景の色だけが変わらなくて浮いて見えます・・・(^^;

背景色を変更する方法はございますでしょうか?
(あと、Fontの色も・・・)


概ねXE2にも慣れてきたのですが、作成中のプロジェクトで挙動不審な
ものがいくつかあって、困っています・・・(^^;

例えば、PageControlに2ページ追加して、それぞれにActionToolBarを
置き、ActionManagerで作ったActionを、それぞれのページに配置して
PageControlのOnChangeイベントに何か命令文を書くと・・・
ActionToolBar上のボタンがページ切り替え時に正常に描画されない・・・

OnChangingイベントに同じ命令を書いても正常に描画されるのですが・・・

バグか?と思い、新規プロジェクトで同じように配置して実行すると、
正常に描画される・・・不思議だ・・・

作成中のプロジェクトに追加でPageControlを配置して同じように
しても、やはり、OnChangeイベントを書くと正常に描画されない・・・

ちなみにOnChangeに書いた命令文は Caption := 'Change'; だけ・・・

該当フォームだけ、新規に作り直したほうが良いかな・・・orz

[5245] Re:plExplorerFolderTreeの背景とFontの色返信 削除
2011/9/14 (水) 10:56:20 Mr.XRAY
▼ Saraさん。ゴメンなさい。今コードをみたら、

> 背景色を変更する方法はございますでしょうか?
> (あと、Fontの色も・・・)


未確認ですが、背景は、

function TplExplorerFolderTree.PrePaint(hdc: HDC; var prc: TRect;
  var plres: LRESULT): HRESULT;

のHDCに描画すれば出来るかも知れません。多分TRectが背景のRectじゃ
ないかと思います。Fontの色の方は、

function TplExplorerFolderTree.ItemPrePaint(hdc: HDC; var prc: TRect;
  var pnstccdItem: TNSTCCustomDraw; var pclrText, pclrTextBk: COLORREF;
  var plres: LRESULT): HRESULT;
var
  pShellItem      : IShellItem;
  pShellItemArray : IShellItemArray;
  pidl            : PItemIDList;
  pFullPath       : array [0..MAX_PATH - 1] of Char;
begin
  if (pnstccdItem.uItemState and CDIS_FOCUS) > 0 then begin
    pclrText := RGB(200, 0, 0);
    plres    := CDRF_NEWFONT;
  end;

ここでは、CDIS_FOCUSの時に色をRGBで設定していますから、それ以外のを
設定すれば可能かも知れません。
ダメだったらゴメンなさい。
うまくいくようでしたら、プロパティに追加しますか…

[5246] Re2:plExplorerFolderTreeの背景とFontの色返信 削除
2011/9/14 (水) 11:06:59 Mr.XRAY
考えてみれば、このTplExplorerFolderTree、TPanelに描画していますが、
直接親のコントロールに表示すればいいんですよね。
う〜ん、バグというより誤字脱字の類ですね。これは。

インターフェイスには直接表示のコントロールがない
      ↓
それじゃ、TPanel使おう

思いこみは怖い。自分自身にあきれました。
またまたSaraさんの発言で気づかされました。
もしかしてSaraさんって、知っていてわざと私を突いていのかしらん(笑)

他にもこんなサンプルコードがいっぱいあるんだろうな。ふぅ(ため息)

[5255] Re3:plExplorerFolderTreeの背景とFontの色返信 削除
2011/9/15 (木) 23:25:30 Mr.XRAY
> それじゃ、TPanel使おう

間違えました.TCustomPanelですね.


[5256] Re4:plExplorerFolderTreeの背景とFontの色返信 削除
2011/9/16 (金) 15:47:52 Sara
▼ Mr.XRAYさん

ありがとうございます。m(_ _)m が、最近サボっていてDelphiいじってません・・・(^^;

今日、帰ったら実装してみます。

そういえば、同じプロジェクトを複製して、Delphi XEとXE2でそれぞれ実行ファイルを
作成出来るようにしてある場合、XE2でテーマを変更すると、XEで作ったPGもそのテーマの
影響を受けるんですね(@_@)
詳しくは調べていませんが、プロセス名か何かが判断の基準なのかな・・・

[5257] Re5:plExplorerFolderTreeの背景とFontの色返信 削除
2011/9/16 (金) 22:41:40 Sara
▼ Mr.XRAYさん

plExplorerFolderTreeの背景色とFont色が無事変更できました。(^^)V

ですが・・・(^^;

AquaGraphite等のGraphiteと付くスタイルの背景色は、RGB(17,17,17)なのですが、
ほぼ黒に近いため、階層のあるフォルダの三角マークが見えなくなります・・・
(マウスオーバーさせると、色が変わるので見える・・・)

これを変えるには・・・やっぱり、Shellのイメージリストを取得して、部分的に
入れ替えて、それを戻してやる的なことをしないとだめですかね・・・(^^;



[5258] Re6:plExplorerFolderTreeの背景とFontの色返信 削除
2011/9/17 (土) 11:47:22 Mr.XRAY
▼ Saraさん

> AquaGraphite等のGraphiteと付くスタイルの背景色は、RGB(17,17,17)なのですが、
> ほぼ黒に近いため、階層のあるフォルダの三角マークが見えなくなります・・・
> (マウスオーバーさせると、色が変わるので見える・・・)


ハハハッ。これはやっぱり、マイクロソフトの言いなりになるしかないですね。

>XE2でテーマを変更すると、XEで作ったPGもそのテーマの
>影響を受けるんですね(@_@)


マニフェストファイル使っていますから。
必要最小限のファイルにしてからコンパイルすると消えるでしょう。

http://mrxray.on.coocan.jp/Delphi/Info/OtherInfo_General.htm#fig3


[5259] Re7:plExplorerFolderTreeの背景とFontの色返信 削除
2011/9/17 (土) 13:55:40 Sara
▼ Mr.XRAYさん

> ハハハッ。これはやっぱり、マイクロソフトの言いなりになるしかないですね。
やはり、List系の背景は白で統一したほうが、簡単かな・・・(^^;

> >XE2でテーマを変更すると、XEで作ったPGもそのテーマの
> >影響を受けるんですね(@_@)
>
> マニフェストファイル使っていますから。
> 必要最小限のファイルにしてからコンパイルすると消えるでしょう。
>
> http://mrxray.on.coocan.jp/Delphi/Info/OtherInfo_General.htm#fig3


ん? XE用のプロジェクトと、XE2用のプロジェクトは全く別なフォルダーに
なっているのですが、それぞれのフォルダーにできたEXEを実行すると、
XE側でもXE2側で設定したスタイルが使われて表示されるんですが・・・

XE2側のマニフェストファイルをXE側にコピーしているわけではないし・・・

なんか、私の言っていること可笑しいです?(^^; (もしくは、気のせい?)

[5260] Re8:plExplorerFolderTreeの背景とFontの色返信 削除
2011/9/17 (土) 15:00:56 Mr.XRAY
▼ Saraさん

> やはり、List系の背景は白で統一したほうが、簡単かな・・・(^^;

うんだ.うんだ (^^;

> ん? XE用のプロジェクトと、XE2用のプロジェクトは全く別なフォルダーに

えっ!? どぼちて….何でそうなんでしょう.リソースに含まれているとか...
じゃなくて... わかりませ〜ん.

[5261] Re9:plExplorerFolderTreeの背景とFontの色返信 削除
2011/9/17 (土) 21:20:11 Sara
▼ Mr.XRAYさん

> > やはり、List系の背景は白で統一したほうが、簡単かな・・・(^^;
>
> うんだ.うんだ (^^;


ところで、背景色や、Fontの色が変えられるようになると、ついでに
plExplorerFolderTreeで表示されるスクロールバーもスタイルと統一
できないかという欲がでてくるんですが、なんとかなりますか?(^^;




[5262] Re10:plExplorerFolderTreeの背景とFontの色返信 削除
2011/9/17 (土) 22:42:31 Mr.XRAY
▼ Saraさん

> ところで、背景色や、Fontの色が変えられるようになると、ついでに
> plExplorerFolderTreeで表示されるスクロールバーもスタイルと統一
> できないかという欲がでてくるんですが、なんとかなりますか?(^^;


気持ちは理解できます。
だって、だからこそ、Windows XP以降テーマが採用され、Delphiでも可能に
なったのですから。
う〜ん、どうでしょう。あのインターフェイスを使用したコードでは無理が
あるかも知れません。

[5265] Re11:plExplorerFolderTreeの背景とFontの色返信 削除
2011/9/18 (日) 01:08:03 Sara
▼ Mr.XRAYさん

> > plExplorerFolderTreeで表示されるスクロールバーもスタイルと統一
> > できないかという欲がでてくるんですが、なんとかなりますか?(^^;
>
> 気持ちは理解できます。


そうですよね!(笑)

と、いうわけで(不明)、TplContextMenuもTPopupActionBarのように
スタイル変更に同期されると、(平和のためよ)みんなが幸せになれるかもしれない・・・
(古い・・・いぜんに知らないか・・・)


[5266] Re12:plExplorerFolderTreeの背景とFontの色返信 削除
2011/9/18 (日) 12:48:41 Mr.XRAY
▼ Saraさん
> 平和のためよ)みんなが幸せになれるかもしれない・・・
> (古い・・・いぜんに知らないか・・・)


確かに、最近みかけないフレーズですね。でもいいフレーズだと思います。
時代は変化しているんですね(実感…)。

[▼次のスレッド]
INCM/CMT
Cyclamen v3.82