LCL Messages/ja
English (en) |
日本語 (ja) |
slovenčina (sk)
メッセージはVCLとの互換性のために存在します。
メッセージはwin32メッセージと同等のように見えますが、パラメータとフラグをサポートしているだけですが、これは、
サードパーティ製のものも含めて、既存のVCLコントロールに共通的に使われているからです。
win32メッセージのように、独自に意味を付けするフラグを利用すると、インターフェースが分かり難くなります。 つまり、メッセージを追加する前に十分な思慮が必要です。
多くのメッセージは、読みにくい定数と、小さな値を使って、インターフェースで利用されています。 また、Windowsはメッセージの順序を正確に決めることはありません。
Lazarusが目標とすることは、すべてのメッセージを、メソッドに置き換えることです。 たとえば、コントロールはサイズを変更するにあたって、WMSizeのかわりに、DoOnChangeBoundsを使うことができます。
現在、LCLがメッセージをインターフェースに送るのは、たいへん限られたケースです。 実際には、VCLの共通な利用で使っています。
現在、インターフェースにおいて、たくさんのメッセージを一時的にLCLに送ることがあります。これらは、近いうちに整理されて減らされるべきです。LCLにおいて、よりよい関数を作るなら、メッセージを送ったほうがよいでしょう。この方法のパラメータは、よく定義されており、すべてのインターフェースは同じ方法でメッセージを作成します。
メッセージ:
- Interface -> LCL -> WMSize, WMMove
- インターフェースから、LCLコントロールに境界の更新の通知メッセージを送ります。LCLやいくつかのインターフェースのauto aligningやsizingの機能によって、これらのメッセージは、いつもリサイズされた場合に送られるとは限りません。LCLコントロールの境界とインターフェースの境界をを厳密に区別してください。混同してはいけません。
(訳注:Windows95系(95/98/ME)とNT系(NT,2000,XP)ではメッセージの順序や発生するかどうか自体も異なるものがあります。WindowsはGUI、メッセージについては基本的な仕様はとても複雑で、OSの混乱を互換性のためにアプリケーションが収拾しないといけないことが、Windowsでは時々あります。)