喫茶XRAYトップページ

[スレッド全体
]

[7459] Re6:Delphi 5のMouseLeaveメッセージ返信 削除
2014/4/6 (日) 19:26:28 Mr.XRAY
> 他のコントロールに載せているコントロールの場合,
> 親のコントロールがメッセージを処理します.


したがって,もし,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 で処理しても構わないと思います.


[7460] Re7:Delphi 5のMouseLeaveメッセージ返信 削除
2014/4/6 (日) 21:50:20 空色の渚
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 で処理しても構わないと思います.


[7461] Re8:Delphi 5のMouseLeaveメッセージ返信 削除
2014/4/6 (日) 22:15:58 Mr.XRAY
▼ 空色の渚さん

>  ダメだこりゃ!?とばかりに、ここに書かれているとおりに、panel のname を
> そのまま(PL5 というnameにしてある)書き込んでみたら、マウスオンで色が変わり、
> マウスアウトで色が元に戻りました。


ここ ?
「ここ」がどこかは分かりませんが,プログラムは
「勝てば官軍,動けば正義」です.ハッキリ言って.


[7462] Re8:Delphi 5のMouseLeaveメッセージ返信 削除
2014/4/7 (月) 07:58:47 Mr.XRAY
▼ 空色の渚さん

>  どうもクラスの継承あたりが苦手です(苦笑

そうですか ? 折角意識的に継承クラス,つまりコンポーネント化の参考となる
コードを提示しているのにぃ.
了解しました.今後は,継承クラスやコンポーネント化しないとできない
場合は,「できません」とレスします.

# 昔,データベース関係のレスで SQL 文の使用を勧めたところ,
# 同様の反応が何回か続いたことがありました.
# それ以来データベース関係にはレスしなくなり,記事も書かなくなりました.


[7463] Re9:Delphi 5のMouseLeaveメッセージ返信 削除
2014/4/7 (月) 09:16:58 空色の渚
Mr.XRAY様

 動いたので官軍だったと思います。
 しかし、開発していたマシンでは問題なかったのですが、
家のマシンで動かしたら、やはり元の「戻らない状態」に戻りました。
 動いていた理由がやはりわかりません。
 
 
 プログラムを組んでいて、自分の限界にぶち当たり
一人でへこんでいたところこの掲示板で助けられました。
 そんな中、誰ともわからぬ人に、無償で知識を提供してくださることに
大変な感謝をしております。
 意識的に継承クラス,コンポーネント化の参考となるコードまで提示して
頂いたことには頭が下がるばかりです。

 ありがとうございました。


> >  どうもクラスの継承あたりが苦手です(苦笑
>
> そうですか ? 折角意識的に継承クラス,つまりコンポーネント化の参考となる
> コードを提示しているのにぃ.
> 了解しました.今後は,継承クラスやコンポーネント化しないとできない
> 場合は,「できません」とレスします.
>
> # 昔,データベース関係のレスで SQL 文の使用を勧めたところ,
> # 同様の反応が何回か続いたことがありました.
> # それ以来データベース関係にはレスしなくなり,記事も書かなくなりました.


[7466] Re10:Delphi 5のMouseLeaveメッセージ返信 削除
2014/4/8 (火) 16:51:03 Mr.XRAY
▼ 空色の渚さん

なんか,お役に立たなかったようで,申し訳ありません.


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82