大昔のプログラムを最新のC++ Builder CEで扱えるようにする
発掘されたFringeプログラムを実行してみましょうかね。

こんな感じのプログラムですが、そのままで一応動きそうですね。中身については後ほど解説します。ハードディスクの奥底から発掘された状態は、

ソースのタイムスタンプからすると、2010年3月くらいのプログラムですね。が、Project1.exeはもっと古く、2004年の元日じゃないですか?そのころのOSは?C++ Builderのバージョンは?
Windows 7が2009年で、Windows 8が2012年なので、その間ですね。ということはWindows 7の時代。
によると、
August 25, 2008: C++Builder 2009 switched to full Unicode support throughout the UI libraries and RTL, with early adoption of the then-C++0x standard plus a ribbon control and integrated Boost library
August 31, 2011: C++Builder XE2 added support for building Mac OS X applications
なので使っていたのは、C++ Builder 2009だったはずということになりますかね。問題は、いかにもダブルクリックしてくれという上図のProject1.bprをそうしてもうんともすんとも言わず、IDEを立ち上げて、プロジェクトを開こうとしてもダメという事実です。お手上げかというと、対処方法は、
に大変分かりやすく書いてあります。まず最新のC++ Builder CEで扱えるようにしましょうかね?でないと、プログラムの修正ができませんから。一番の問題は、このプログラムは干渉縞を色々な条件下で表示する、あるいはシミュレートするものですが、絶対的、根本的問題があります。それは”白色”の干渉縞というあり得ない状況をシミュレートできてしまうので、講義で使う学生さんに見せるプログラムですから、致命的な間違いです。よって修正を余儀なくされているわけですが、そのためには修正後にbuildできないと困るわけです。あえて例示すると、

これは赤枠で囲ったレーザの選択が独立に可能な点がまずいわけで、チェックボックスではなく、ラジオボタンにするのが吉だったわけです。それを今からやろうというわけです。デフォルトでは全部オフなので、”白色レーザ”での干渉縞が出てきてしまいます。さて、Embarcaderoさんの手順でC++ Builder CE 12.1でbuildしたプログラムを実行すると、

無事動きましたが、同心円状の干渉縞のセンター等がズレています。これは、Windows10やら11で拡大スケーリングしていると”あるある”な現象です。対策は、プロジェクト->オプション->アプリケーション->マニフェスト->DPIの認識 を”なし”にします。以下参照。

これで、

意図通りに表示されました。さて、ソースとフォームを直しておきましょうかね。
チェックボックスx3を削除して、代わりにRadioButtonx3を配置します。適当にフォームにドロップしてから、下記のように”位置揃え”するのが吉です。

で、それぞれのキャプションを”He-Ne 632.8nm”,Ar+ 514.5nm”,Ar+ 488.0nm”とします。RadioButton1をデフォルトで”Checked”にしておきましょう。またどちらかというと”Circular”な干渉縞の方がそれらしいので、こちらもデフォルトにしましょう。起動して、”Make It So”1ボタンを押すと、

RadioButtonというのは一つしか選べないので、押したボタンがtrueになり、それ以外はfalseになります。一昔前のラジオのバンド切り替えボタン等に由来するものです。これですっきりしました。
- ピカード艦長 ↩︎
コメント