>>139 の方法がなぜ良くないかをまず説明します
Windowsでは複数の窓があるように見せていますが、実際の表示デバイスはせいぜい1つです
他の窓に隠された部分が また表示されるのは、アプリケーションが努力しなければなりません
その為の仕掛けをメッセージループと呼びます
窓はメッセージを受信する仕掛けをもち、再描画しろというメッセージにしたがって画面を自分で
描くわけです。
また、キーボードが押された、マウスが押されたもメッセージにより処理されます。
Delphiでは application.ProcessMessages; で明示的にそのメッセージループを呼び出す事も
出来ます。コンソールアプリでapplication.ProcessMessages;を定期的に呼び出せば、作成した
フォームはマウスを受け付ける事が出来るようになります。が、それをしても
>>139のように描画
処理をベタに書いたのでは 他の窓に隠れると2度と表示出来ない事にかわりはありません。
この部分をイベント駆動にしなければならないのです。
それがフォームにある OnPaintイベントです。