Mr.XRAY様
今、頂きましたコードを実装致しました。
結論から書かせていただくと、意図したとおりになりました。
なぜ意図したとおりに動いたのかわかりませんが、
> したがって,もし,Image1 の Align が alClient であれば,
と書かれていたので、 alclient にしたところ、「閉じる」ボタンのイメージが
すぅっとパネルに吸い込まれて、下段になくてはならないのに上段へ移動して
しまいました。
ダメだこりゃ!?とばかりに、ここに書かれているとおりに、panel のname を
そのまま(PL5 というnameにしてある)書き込んでみたら、マウスオンで色が変わり、
マウスアウトで色が元に戻りました。
理由はよく分からないのですが、とにかく意図したとおり動きました。
上手く動いているので、いいかな?という気もしますが、理屈に合っていますか?
このパネルの上に2枚のimage を置いたらどうなるのだろう?とか考えて
しまいますが、偶然なのでしょうか?
どうもクラスの継承あたりが苦手です(苦笑
今回も大変お世話になりました。
ありがとうございました。
追伸
余談ながら
私の普段の行いは、秋の青空のように澄んでいるとよく言われます。
根が爽やかなので、作るソフトのデザインも爽やかです。
ただ、動作が微妙なのですね。
よく分からずに書いているコードがあるので(笑)
「動いたからいいや」みたいな点だけは、高田純次っていわれています。
> > 他のコントロールに載せているコントロールの場合,
> > 親のコントロールがメッセージを処理します.
>
> したがって,もし,Image1 の Align が alClient であれば,
>
> procedure TForm1.CMMouseleave(var Message: TMessage);
> begin
> inherited;
> if TCMMouseLeave(Message).Sender = Panel1 then begin
> Memo1.Lines.Add('Leave');
> end;
> end;
>
> のように,親の TPanel で処理しても構わないと思います.
|