delphi.gif (306 バイト) MS-DOSプログラムとの違い


MS-DOSでプログラミングを行っていた人がDelphiなどのWindowsプログラミングツールを使うとき、考えなければならないことがいくつかあります。

 


-

ball-r2.gif (874 バイト) イベント

MS-DOSのプログラムは、フローチャートで表されるような上から下に順に実行するようなものでした。大規模なプログラムでは、マウスやその他のデバイスを監視してイベントを捕捉するような部分を自分で記述しなければなりませんでした。
Windowsでは、外部のイベントはすべてWindowsが管理してアプリケーションにメッセージという形で知らせてくれます。よって、アプリケーションレベルでイベントを捕捉する必要は全くないのですが、逆にすべては、このメッセージに対して応答しなければなりません(大部分は無視するのですが)。
MS-DOSプログラムでは、メインプログラムというのが必要ですが、Delphiではメインプログラムは必要ありません。というより、プログラマが関知する必要がありません。メインプログラムに相当する部分はDelphiが勝手に処理してくれます。プログラマはひたすらイベントに応答するためのクラスを定義して、メソッドを書くだけでよいのです。

 

-

ball-r2.gif (874 バイト) ウィンドウ

MS-DOSではウィンドウという概念はありませんでした。しかし、アプリケーションレベルでマルチウィンドウを実現していた例はあります。WindowsではOSレベルでマルチウィンドウを実現しています。したがって、ユーザはウィンドウの大きさを変更したり、ウィンドウを切り替えたりを行います。したがって、ウィンドウをスクリーンだと思ってプログラムを作ってはいけません。

 

-

ball-r2.gif (874 バイト) マルチタスク

MS-DOSはシングルタスクのOSでしたが、Windowsはマルチプロセス(複数のアプリケーションがリアルタイムで同時に実行できる)、マルチスレッド(1つのアプリケーションの中で同時に2つ以上の仕事ができる)OSなので、ある仕事をループの中でひたすら行うというプログラムを作ってはいけません。
ループをしていても強制的に他のプロセスやスレッドに切り替えが行われますし、ループの中で何(例えば時間)かを監視するようなコードを書くとシステム全体のパフォーマンスが低下してしまいます。