ActnMenus+MDIのバグ

解決


exas  2006-01-22 04:28:22  No: 19797

初めまして。

いきなりですが、本題です。

1.MDI親ウィンドウと子ウィンドウを作成します。
2.親ウィンドウには TActionMainMenuBarを貼り付けます。
3.アプリケーションを実行し、子ウィンドウを最大化します。

この操作を行うと、親ウィンドウの閉じる[×]ボタンの下に子ウィンドウの
閉じる[×]ボタンが表示されるべきですが、
子ウィンドウの最大化、最小化、閉じるのボタン全てが表示されません。

BDNにてこの問題の解決策を見つけることはでき、
http://qc.borland.com/wc/qcmain.aspx?d=5131

VCLを直接修正して、ボタンが表示されないバグを解消することはできたのですが、
別のバグが発生しました。
・WinXPではボタンにテーマが反映されない。
・Win2000ではボタンのサイズが一回り大きくなる。

調べたところ、TActionMainMenuBarとTXPManifestに関連した修正を見つけたのですが
http://homepages.borland.com/strefethen/index.php?pagename=Main.Delphi7#toc10
VCLソースの修正後にも同じバグが残っています。

開発環境は Delphi7 & Win2000
動作環境は 開発環境+WinXP で行っています。

以上、宜しくお願い致します。

#ActionManager関連には他にもバグがあるそうなのですが
#修正差分等の配布は行っていないのでしょうか…。


exas  2006-01-22 08:37:12  No: 19798

自己レスです。

Win2000の閉じるボタン等の大きさに関するバグはソース手修正でなんとかなりました。
XPに関しては、他のMDIアプリを見る限りテーマが適用されていないようですので(Java製や.NET製は除く)
これで特に問題はなさそうなので放置です。

また、ActnMenus.pasをいじる時の注意点ですが
コンパイラオプションで範囲チェックのチェックを外しておかないと
実行時エラーが出てしまうようです。
http://qc.borland.com/wc/qcmain.aspx?d=7116

とりあえず解決とさせて頂きます。


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

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






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