トップページ > プログラム > 2015年12月13日 > rQ3iISGF

書き込み順位&時間帯一覧

11 位/192 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000050000005



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
【Delphi】Embarcaderoオッチャ その31【C++ビルダ】 [転載禁止]©2ch.net

書き込みレス一覧

【Delphi】Embarcaderoオッチャ その31【C++ビルダ】 [転載禁止]©2ch.net
495 :デフォルトの名無しさん[sage]:2015/12/13(日) 17:02:55.75 ID:rQ3iISGF
TWinControlのデストラクタDestroyで
 if WindowHandle <> 0 then
  DestroyWindowHandle;
 I := ControlCount;
 while I <> 0 do
 begin
  Instance := Controls[I - 1];
  Remove(Instance);
  Instance.Destroy;
  I := ControlCount;
 end;
で、なんで先に自身のWinHandle破棄してきら子コントールのハンドル破棄するの?
行儀よく先に子を破棄してほしいんだな。
【Delphi】Embarcaderoオッチャ その31【C++ビルダ】 [転載禁止]©2ch.net
496 :デフォルトの名無しさん[sage]:2015/12/13(日) 17:07:52.02 ID:rQ3iISGF
WinAPI的にも親子関係のある2つのウィンドウハンドルで先に親ハンドル破棄したら
子ハンドルどんな状態になるのかしらんが、この行儀の悪い破棄の仕方でエラーが
おきるな。仕方ないからフォームのOnDestroyで親子関係わざわざ切ってあげて
回避してるんだが。
【Delphi】Embarcaderoオッチャ その31【C++ビルダ】 [転載禁止]©2ch.net
497 :デフォルトの名無しさん[sage]:2015/12/13(日) 17:09:52.15 ID:rQ3iISGF
あー。そういや、ごめん。Winハンドルに所有関係みたいのあったけかな。
ちょっと調べてみる。
【Delphi】Embarcaderoオッチャ その31【C++ビルダ】 [転載禁止]©2ch.net
498 :デフォルトの名無しさん[sage]:2015/12/13(日) 17:12:13.15 ID:rQ3iISGF
If the specified window is a parent or owner window, DestroyWindow automatically destroys the associated child or owned windows
when it destroys the parent or owner window. The function first destroys child or owned windows, and
then it destroys the parent or owner window.
あー。やっぱあったな。すまん。
【Delphi】Embarcaderoオッチャ その31【C++ビルダ】 [転載禁止]©2ch.net
499 :デフォルトの名無しさん[sage]:2015/12/13(日) 17:29:12.13 ID:rQ3iISGF
解決したわ。
カスタムコンポ作ってたがWM_DESTROYを処理しないとダメってことだったわ。
やっちっまった。わかりづらいんだよ。DestroyHandleとかオーバーライドしてたわ。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。