39

Firemonkey の ScrollBox コンポーネントで奇妙なバグと思われる現象が発生しています (それからのTGrid継承TScrollBoxはすべてのグリッドにも影響するため)。一部の開発マシンではすべて正常に動作しますが、他のマシンではバグが発生します。システム間のパターンを検出できませんでした (OS、グラフィックス ハードウェア、DirectX のバージョンを確認しました)。

再生:

  1. 新しい FireMonkey アプリケーションを作成します。をフォームに配置しTScrollBoxます。
  2. scrollBox にボタンを追加し、垂直位置を 500000 に設定します。
  3. アプリケーションを起動し、スクロールボックスの端までスクロールしたときにボタンが表示されるかどうかを確認します。

バグが発生した場合、ボタンは表示されません。

グリッドを使用すると、1 ~ 19047 行が正しく表示され、19047 以降のすべての行が表示されなくなります。

何がこれを引き起こしているのか誰にも分かりますか? または、問題をより詳細に特定する方法はありますか?

4

1 に答える 1

2

スクロールに関するあらゆる種類の問題が発生した後、firemonkey のスクロール コンポーネントに初期化の問題があり、危険なスクロール動作に現れるという結論に達しました。うまくいくこともあるし、うまくいかないこともある…

問題を何度か修正したと思った後、その後のコンパイル (または別の OS) で問題が再発するのを見るだけでしたが、すべての子コンポーネントを追加した後、コンポーネントの UpdateStyle メソッドを呼び出すことに成功しました。つまり、呼び出しを追加してから問題は再発していません...

E.g. The following pseudo code populates a scroll component then calls UpdateStyle which seems to force the component to 'fix' invalid settings for various properties - Min, Max etc.

for i := 1 to x do
  MyScrollComponent.AddObject(MyObject[i]);
MyScrollComponent.UpdateStyle;

Hope this works for you too...

于 2011-11-24T02:18:34.763 に答える