Difference between revisions of "LCL Messages/ja"
m |
m |
||
Line 1: | Line 1: | ||
− | {{LCL Messages | + | {{LCL Messages}} |
− | + | {{Japanese Menu}} | |
Thumb rules: | Thumb rules: | ||
− | + | メッセージはVCLとの互換性のために存在します。 | |
− | + | メッセージはwin32メッセージのように見えますが、パラメータとフラグをサポートしているにすぎません。 | |
− | + | それらは、サードパーティ製のものも含めて、既存のVCLコントロールに共通的に使われているからです。 | |
− | + | ||
− | + | 共通的に使われていない、独自に利用するフラグは、インターフェースの実装を難しくします。 | |
− | + | つまり、メッセージを追加する前に十分な思慮が必要です。 | |
− | + | ||
− | + | 多くのメッセージは、読みにくい定数と、ちょっとした値を使い、インターフェースに用いられます。 | |
− | + | Windowsはメッセージの順序を正確に決めることはありません。 | |
− | + | (訳注:たとえば、Windows95系(95/98/ME)とNT系(NT,2000,XP)ではメッセージの順序や発生するかどうか自体も異なるものがある。互換性はともかく、WindowsはGUIについては複雑で大変混乱して作っているようである。そのOSの混乱をアプリケーションが収拾しないといけない「おまじない」を入れなくてはいけないことが時々ある。) | |
− | + | ||
+ | ですから、Lazarusが目標とすることは、すべてのメッセージを、メソッドに置き換えることです。 | ||
+ | たとえば、コントロールはサイズを変更するにあたって、WMSizeのかわりに、DoOnChangeBoundsを使うことができます。 | ||
+ | |||
+ | 現在、LCLがメッセージをインターフェースに送るのは、たいへんまれなケースのみです。 | ||
+ | 事実として、VCLの共通な利用のみで使っているくらいです。 | ||
− | |||
− | |||
At the moment the interfaces send many messages to the LCL. This amount should | At the moment the interfaces send many messages to the LCL. This amount should |
Revision as of 03:11, 30 July 2006
English (en) |
日本語 (ja) |
slovenčina (sk)
Thumb rules:
メッセージはVCLとの互換性のために存在します。 メッセージはwin32メッセージのように見えますが、パラメータとフラグをサポートしているにすぎません。 それらは、サードパーティ製のものも含めて、既存のVCLコントロールに共通的に使われているからです。
共通的に使われていない、独自に利用するフラグは、インターフェースの実装を難しくします。 つまり、メッセージを追加する前に十分な思慮が必要です。
多くのメッセージは、読みにくい定数と、ちょっとした値を使い、インターフェースに用いられます。 Windowsはメッセージの順序を正確に決めることはありません。 (訳注:たとえば、Windows95系(95/98/ME)とNT系(NT,2000,XP)ではメッセージの順序や発生するかどうか自体も異なるものがある。互換性はともかく、WindowsはGUIについては複雑で大変混乱して作っているようである。そのOSの混乱をアプリケーションが収拾しないといけない「おまじない」を入れなくてはいけないことが時々ある。)
ですから、Lazarusが目標とすることは、すべてのメッセージを、メソッドに置き換えることです。 たとえば、コントロールはサイズを変更するにあたって、WMSizeのかわりに、DoOnChangeBoundsを使うことができます。
現在、LCLがメッセージをインターフェースに送るのは、たいへんまれなケースのみです。 事実として、VCLの共通な利用のみで使っているくらいです。
At the moment the interfaces send many messages to the LCL. This amount should
be reduced in future. Better create a procedure in the LCL, that will send the
message. This way the parameters are well defined and all interfaces creates
the messages the same way.
The messages:
- Interface -> LCL -> WMSize, WMMove
- Send from the interface to tell the LCL control to update its bounds. Because of the auto aligning/sizing features of the LCL and some interfaces, these messages are not sent everytime a HandleObject is resized. So, either trust the LCL bounds OR the interface bounds, but don't mix.