パソコン困りごと相談
 ◇-?プログラムの色が変わる-栗-02/21-13:16(174)-No.396143
   ┗?!Re:プログラムの色が変わる...-独覚-02/21-16:45(170)-No.396171
     ┗?!?Re:プログラムの色が変わる...-栗-02/21-17:14(170)-No.396173
       ┗?!?!Re:プログラムの色が変わる...-独覚-02/21-17:37(169)-No.396175
         ┗?!?!-Re:プログラムの色が変わる...-栗-02/21-17:55(169)-No.396176
           ┗?!?!-?Re:プログラムの色が変わる...-栗-02/22-09:59(153)-No.396256
             ┗?!?!-?【解決】Re:プログラムの色...-栗-02/22-11:26(151)-No.396268

▲このページのトップに戻る
396143プログラムの色が変わる2007/02/21-13:16

メーカー名:HEWLETT PACKARD ヒューレット・パッカード
OS名:WindowsNT
パソコン名:顧客環境のため不明
--
WindowsNT4.0 sp3の環境下でプログラムを複数起動している状態で
新たにVB6のプログラムを実行させたところ、フォームが表示されたタイミングで
すでに実行中のプログラムの色が一部変わりました。
変わった色はベージュのような色の部分でその部分が黒やグレー
(そのときによって変わる)になりました。
VB6のプログラムで次のフォームを表示しても状態は変わらなかったのですが
そのフォームを閉じたところ色がもとに戻りました。
しかし色が変わったほうのプログラムにフォーカスを移動すると
再び色がおかしくなりました。

原因はリソースの問題ではないかと思われますが
メモリは190MB以上積んでいて使用量(コミットチャージ)は139MBなので
十分だと思います。
ハードディスクの空きも十分あります。
NTなのでシステムリソースの不足も考えにくいです。

ちなみにプログラムは5本程度常に実行している状態です。

色が変わる原因は何が考えられるでしょうか。

▲このページのトップに戻る
396171Re:プログラムの色が変わる独覚 2007/02/21-16:45

記事番号396143へのコメント
画面上のアイコンのない場所で右クリックして「プロパティ」を選択してみてください。
そこで「設定」タブを開き、「画面の色」(こちらはXPで見ている為名称が違う可能性もあります)
を確認してみてください。

そこの色数が少ない場合、お書きになったような現象が起こる事があります。

▲このページのトップに戻る
396173Re:プログラムの色が変わる2007/02/21-17:14

記事番号396171へのコメント
独覚さんは No.396171「Re:プログラムの色が変わる」で書きました。

引き続き調査したところ
色が変わったほうのプログラムを再表示させる(ウィンドウを画面より外に
ドラッグして再度画面内にドラッグ)すると色は元に戻ります。
リソースの不足のように思われますが対策は色数(現在256色)の変更しか
ないのでしょうか?

ちなみにVB6以外のほかのアプリケーションを起動したときも同様の現象
(起動中のプログラムの色が変わる)が確認されましたが、
すべてのアプリケーションで起きるとは限りませんでした。
(たとえばエクスプローラを起動しても起きない。)



▲このページのトップに戻る
396175Re:プログラムの色が変わる独覚 2007/02/21-17:37

記事番号396173へのコメント
栗さんは No.396173「Re:プログラムの色が変わる」で書きました。
>リソースの不足のように思われますが対策は色数(現在256色)の変更しか
>ないのでしょうか?
リソース不足ではなくある意味Windowsの仕様です。
256色表示というのは決まった256色を表示できるという意味ではなく、同時に256色まで
表示できるという意味です。

詳しくは下記等を参考にしてみて欲しいのですが簡単に言うともっと多くの色の中から
256色を選んで1から256の番号を振り、プログラムでは色を扱う時にその番号を使います。
(この番号と色の対応をパレットといいます)

で、Windowsは画面表示をする際にそのときアクティブになっているプログラムのパレットを
使って画面表示するため、そのプログラムのパレットが他のプログラムのパレットと違ったり
そもそも256色表示を考慮していない(パレットがない)場合、他のプログラムの色が変わって
しまいます。
(上記は画面の色数が少ない場合です)

ですので対処としてはやはり画面の色数を増やすしかないかと。

http://wisdom.sakura.ne.jp/system/winapi/win32/win122.html

▲このページのトップに戻る
396176Re:プログラムの色が変わる2007/02/21-17:55

記事番号396175へのコメント
独覚さんは No.396175「Re:プログラムの色が変わる」で書きました。

回答の方どうもありがとうございました。
表示色の変更が可能であればやってみたいと思います。

▲このページのトップに戻る
396256Re:プログラムの色が変わる2007/02/22-09:59

記事番号396176へのコメント
栗さんは No.396176「Re:プログラムの色が変わる」で書きました。
すいません。
もう1点確認事項があります。
プログラムを複数起動している状態で新たにVB6のプログラムを実行すると
すでに実行中のプログラムの色が一部変わった件ですが、
VB6のプログラムはシステムパレットしか使用していない
(固有のパレットは指定していない)
のですが、それでも別のプログラムのパレットを書き換えてしまうことが
あるのでしょうか。




▲このページのトップに戻る
396268Re:プログラムの色が変わる2007/02/22-11:26

記事番号396256へのコメント
栗さんは No.396256「Re:プログラムの色が変わる」で書きました。
すいません。
vb6のプログラムでもハーフトーンパレットを使用していたので
それが他のプログラムのパレットと異なる可能性が考えられますので
とりあえず本件はご指摘の可能性で調査します。