2009-05-10 5 views
0

私はTGraphicControlの子孫を持っています。 TWinControlの子孫もあります。これは、このペイントを高速化します。両方のコントロールが同じTPanelにあります。TGraphicControl.PaintからTWinControl.Updateを呼び出すのは安全ですか?

スクロール中、TGraphicControlはTWinControlより頻繁に更新されるため、同期がとれていません。この更新は、私のコードではなく、Windowsおよび/またはVCLによって行われます。

TGraphicControl.PaintメソッドからTWinControl.Updateを呼び出すことでこれを解決できますが、これは問題を引き起こす可能性があります。

これは安全ですか?

答えて

1

twincontrolへのコールバックがない限り、正常であるはずです。 twincontrolが厳密にneccよりも頻繁に更新されるかもしれませんが、それはすべてです。

+0

意味があります。 WMPaintハンドラが子TWinControlsを更新するように親パネルを微調整しました。どんな再帰的ループもこのように回避されます。 – Giel

1

無関係であれば安全です。しかし、それは非常に効率的なアプローチのようには見えません。

TGraphicは親コントロールのペイントに依存しますが、それはTWinControlの親ですか?

あなたはと少し試しかもしれません:A)のTWinControl(のTGraphicはとにかくその便利かは効率的ではない)であることをのTGraphicベースの制御を変更

。それはあなたがソースを所有している場合です。

b)特殊(ボーダレスなど)にグラフィックコントロールを埋め込む

関連する問題