喫茶XRAYトップページ

[スレッド全体
]

[2812] plDateEditのOnChengeイベント時のSenderオブジェクトについて返信 削除
2009/12/10 (木) 20:38:08 Toshi
毎度、お世話様です。

標記の件、OnChengeイベントにてParentに
plDateEdit自身がセットされてくる事がありますがこれは仕様でしょうか?
(TComponent(Sender).GetParentComponentや
  TControl(Sender).Parent)

フォーム上にパネルが何枚かあって
各パネル毎に登録ボタンがあるのですが、
パネル内の入力コンポーネントにはOnChengeに
全て同じプロシージャを設定し共通化しています。

その際、自分の親オブジェクトを判断して
登録ボタンをEnable化しているのですが、
前述の理由でplDateEditの親を特定できません。


各年月日のテキストコンポーネントから見れば
親オブジェクトはplDateEditでしょうからある意味正しいのかも???


以上、たびたび申し訳ありませんが宜しくお願いします。

[2813] Re:plDateEditのOnChengeイベント時のSenderオブジェクトについて返信 削除
2009/12/10 (木) 22:08:31 Mr.XRAY
▼ Toshiさん,お世話になっています.

> plDateEdit自身がセットされてくる事がありますがこれは仕様でしょうか?
> (TComponent(Sender).GetParentComponentや
>   TControl(Sender).Parent)


これ現在の仕様です.Senderが各コントロールなので.

> その際、自分の親オブジェクトを判断して

そうですね.そうなるとちょっと不便ですね.
ちょっと考えてみます.
しかし,そうなると,もしすでに現在の仕様でSenderを使っている方が
いると,その対策も考えないと.
う〜ん.最初の設計がまずかったか?
Parentを取得すると,TplDateEditのParentを返すようにしてしまう
という考え方もありかも知れません.

>以上、たびたび申し訳ありませんが宜しくお願いします。

いやいや,公開している以上,使っていただいてこそですからね.

[2815] Re2:plDateEditのOnChengeイベント時のSenderオブジェクトについて返信 削除
2009/12/10 (木) 22:20:15 Mr.XRAY
現状の仕様で対処するとすれば,

TplDateEdit(TControl(Sender).Parent).Parent.Name;

な感じになってしまいますね.

[2826] plDateEditのOnChengeイベントは仕様ミス返信 削除
2009/12/11 (金) 11:16:07 Mr.XRAY
このイベントのSenderの仕様ですが,実はかなり前に悩んだことがあります.
今後コンポを開発する方は,Senderはコンポ自身とすべきですね.
内部コンポーネントへのアクセスは,このSenderからできますから.

ただ,自分でも,このコンポを多く使用したアプリを開発していて
修正が面倒だったということもあり,そのままとしています.

[2828] Re:plDateEditのOnChengeイベントは仕様ミス返信 削除
2009/12/11 (金) 13:19:38 Toshi
▼ Mr.XRAYさん

> ただ,自分でも,このコンポを多く使用したアプリを開発していて
> 修正が面倒だったということもあり,そのままとしています.


既に使用してしまっているものを大量に修正するのは大変ですよね(^^;

現状横着する為にフォーム上の全入力コンポーネントの
OnChengeイベントに同一のプロシージャを設定しているため
Parentを判断する必要があります。
しかしParent候補は多くてもパネル3枚程度ですからパネル毎に
プロシージャを分ける等、こちらで回避出来ると思います。

今回の画面では親となるのはパネルだけなので
親候補はパネルのみと割り切ってParentパネル以外だったら
更にその親を返すファンクション間に挟むのもいいかもしれません。

こちらで楽な回避方法を考えてみます。


以上、返信ありがとうございました。


[2832] Re2:plDateEditのOnChengeイベントは仕様ミス返信 削除
2009/12/11 (金) 21:45:26 Mr.XRAY
▼ Toshiさん

> こちらで楽な回避方法を考えてみます。

スミマセンね.
多分,公開したばかりの時に,このような問い合わせがあったと
したら,直していたでしょうね.

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