2011-11-08 5 views
0

何か理由がありますか?どうすればと思われるかもしれませんが、TControl.Hideまたはcontrol.Visible := Falseは機能しません。TControl.Hideがコントロールを非表示にしないのはなぜですか?

何らかの理由でパネルを非表示にしないコントロール(JvPanelsなど)を含むパネルを非表示にするアプリケーションのコードが1行あります。

これはコード

pnlMainData.Hide; 

である私が無駄に(のsetVisible関数であるとして)それを隠すためにパネルに直接メッセージを送信しようとしました。

+2

おそらく 'pnlMainData'はあなたの考えではありませんか?おそらく 'pnlMainData'には子コントロールを自動的に管理する親がありますか?おそらく 'TTimer'の' OnTimer'イベントや 'TApplicationEvents'の' OnIdle'イベントで 'pnlMainData.Show'をしているのでしょうか? –

+0

ShowWindow(pnlMainData.Handle、SW_HIDE)はパネルを非表示にしますか?もしそうなら、多分カスタムWndProcが特定のメッセージを食べているでしょうか? –

+2

問題を再現する小さなプロジェクトを表示してみませんか? –

答えて

0

これとしばらくの間戦ってしまったのですが、私はHidingイベントに近づくために積み重ねたコードを再作成し、それを自分で並べ替えました。私が気付いたことの一つは、FASTMMを使用しているときにこの問題が発生することがあり、それを使用していないときに正常に動作するように見えることです。

Iveは今テストしているユーザーのテスターに​​よってアプリが送信されるので、問題が同じかどうかを確認します。

+0

FastMMが問題であるとは思わないでください。問題はほぼ確実にあなたのコードにあります。 –

+0

イム。私はfastmmを使用して、私が追跡していた他のいくつかのバグを追跡し、パネルを隠そうとするときにそれを隠すことができないことに気づいただけです。それほど少なくはないが、hideの機能は必要に応じて機能している。 – Brendan

関連する問題