ビルド構成"Release"のフォントカラーが"Debug"と異なる

解決


yTake  2021-07-02 20:12:23  No: 149761

yTakeです。
再びビルド構成の"Release"と"Debug"での相違についてです。

DELPHI XE + FMXでターゲットプラットフォームは32ビットです。

あるプロジェクトでTGroupBoxとTRadiobuttonのテキストの色が違っています。
"Debug"でビルドしてからビルド構成を"Release"にして、続けてビルドしました。
もちろんソースコードには一切変更は加えていません。
"Debug"時"clInfoBk"だったものが、”Release”時は黒になっています。

DELPHIのプロジェクトのオプション等もなんら変更していません。ビルド構成を変えて続けてビルドしました。

たのプロジェクトではその様な現象は起きていない様です。
ただ、"Release"では実行時にエラーとなってしまうプロジェクトもあります。

"Debug"と"Release"とで文字色を同じにしたいと思います。

ご助言頂けると幸いです。


igy  2021-07-02 21:28:36  No: 149762

> DELPHI XE + FMXでターゲットプラットフォームは32ビットです。

Delphi XEって、FMX 対応していましたっけ?


yTake  2021-07-03 13:24:48  No: 149763

igyさん、ありがとうございます。

失礼しました。
記述ミスです。
DELPHIはXE6です。

また、使用するDLLの関係で、FMXではなくvclでの開発でした。
併せて、お詫びし訂正させて頂きます。

申し訳ありません。


igy  2021-07-03 13:49:37  No: 149764

Delphi XE6は、使ったことがないのですが・・
・Delphi XE6 は、最新のupdate・hotfixなど適用していますか?
・TGroupBoxとTRadiobuttonを使っただけのプロジェクトでも、その現象は起きますか?

> ただ、"Release"では実行時にエラーとなってしまうプロジェクトもあります。

今回の質問とは、関係なさそうですが、これは原因を調査して、修正する必要は、あるかと思います。


yTake  2021-07-03 17:21:10  No: 149765

igyさん、
早速ありがとうございます。

update 1が適用されている様です。
最新版だと思います。

他のプロジェクトで試して、"Release"のビルドでエラーのないものは"Debug"と"Release"とでGroupBoxとRadioButtonの色は同じです。
このプロジェクト固有の問題の様です。

どうも奥深い要因がありそうです。

"Debug", "Release"をビルドして気が付いた点があります。
単純に、"Debug"はデバッグの為の情報が実行ファイルに埋め込まれ該当するソースへ飛んだりなどのデバッグの為の情報が含まれる分、生成されるEXEファイルのサイズが"Release"より大幅に大きくなると漠然に思っていましたが、実際には逆になっています。"Release"の方が"Debug"より3倍くらいファイルサイズが大きい。
そう言うものなのでしょうか?


HFUKUSHI  2021-07-03 17:36:16  No: 149766

今存在しているものとは別に、新規にプロジェクトを作成してみてはいかがでしょう?
新規にプロジェクトを作成し、自動で作られるUnit1.pas(TForm1)を削除し、そこに既存のユニットを全て追加、という手順になります。


yTake  2021-07-03 19:20:12  No: 149767

HFUKUSHIさん、
ありがとうございます。

取り敢えず、全く新規に作成して(プロジェクトもGroupBox, Radiobuttonも新規)みた場合では、違いは生じませんでした。

プロジェクト自体は新規で作成して、内容は、自動作成されるUnit1.pas(TForm1)を削除し、問題が生じているプロジェクトからコピーしてきて試してみると言う事ですね。
結構コンポーネントがあるので大変そうですが、試してみます。


HFUKUSHI  2021-07-03 20:50:13  No: 149768

コピーしてというか、プロジェクトにユニットを追加するだけです


igy  2021-07-03 21:01:09  No: 149769

> プロジェクトにユニットを追加するだけです

あと、フォームが複数ある場合、
プロジェクトのオプションの「フォーム」の箇所で
自動生成フォーム・使用可能フォームのところを、元のプロジェクトと同じにする必要がありますね。
(生成順などが違うと、起動時などに不都合が起きる場合もあるので・・)


yTake  2021-07-04 01:26:31  No: 149770

HFUKUSHIさん、igyさん、ありがとうございます。

ご助言ありがとうございます。ご指示の通り試してみたいと思います。

これまでも何度かプロジェクトを作成したり、複数フォームのプロジェクトも作成した事があります。
ただ、プロジェクト・オプションの設定を変更した事はほとんどありません。
特に最近(問題の"Release", "Debug"のFONT COLORのプロジェクトも)はオプション設定は変えていないと思います。
何か不用意に変えてしまったのかも知れません。
この辺、慎重に確認してみたいと思います。


yTake  2021-07-06 10:43:38  No: 149783

新規プロジェクトに置き換えるテストですが、フォームが多くて苦慮しています。

ここでいくつか気づいた点を上げます。

元々、TRadioButton, TGroupBoxは編集画面上でFONT色を変えても色が変わりません。TCheckBoxも同様です。TLabelは編集画面上で文字色は変わりました。

TRadioButton, TGroupBoxは青
TCheckBoxは緑
TLabelは赤
をFONTに設定し、
ビルド構成を"Debug"で保存し終了します。次回起動時、編集画面でのこれら文字色は設定通りに表示されます。また、実行時も設定通りです。
一方、上述のFONT色で
ビルド構成を"Release"で保存し終了します。次回起動時、編集画面ではこれら文字色はTLabelを除き設定通りに反映していません。実行時、TLabelは赤文字ですが、他は黒文字です。

そしてこの傾向は新規のプロジェクトでTGroupBoxとTRadioButtonのみの場合でも同様で、何か不用意に設定を変えた様にも思えなくなって来ました。初めからプロジェクトの設定に何か変更が残っていたとも考えられますが、、、

以上、追加の情報です。

ご助言があれば、よろしくお願いします。


igy  2021-07-06 21:50:53  No: 149785

Delphi 10.4.2だと、プロジェクトのオプションで、
「アプリケーション」-「マニフェスト」に「ランタイムテーマの有効化」があり、
ターゲットが「Debug構成」「Release構成」両方で、「ランタイムテーマの有効化」をOFFにすれば良さそうですが、
Delhi XE6 では、同様の設定は、ありますか?


yTake  2021-07-07 10:55:33  No: 149786

igyさん、
ありがとうございます。
XE6でも同様の設定はありました。
ターゲットが「Release構成」の時、「ランタイムテーマを有効にする」になっていました。
ここを「未指定」とする事で現象は解消されました。
一見すると、「有効」の方が正しい感じがしますが、「未指定」なのですね。
何かのきっかけで自分で「有効化」したのでしょうね。

大変ありがとうございました。


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加