Мы сталкиваемся с тем, что кажется странной ошибкой в компоненте ScramBox Firemonkey (поскольку TGrid
наследует от TScrollBox
, он также влияет на все сетки). На некоторых наших машинах разработки все работает нормально, а на других - ошибка. Нам не удалось обнаружить какой-либо шаблон между системами (мы проверили ОС, графическое оборудование, версию DirectX).
Размножение:
TScrollBox
в форму.Если ошибка возникает, кнопка не отображается.
При использовании сетки это приводит к тому, что строки 1-19047 отображаются правильно, а все строки от 19047 и выше не отображаются.
Кто-нибудь может понять, что может быть причиной этого? Или любая идея, как мы можем определить проблему более подробно?
После всех проблем со скроллированием я пришел к выводу, что существует проблема инициализации с прокруткой компонентов в firemonkey, которая проявляется в изворотливом прокрутке. Иногда это будет работать, и иногда это не будет...
После того, как я подумал, что я исправил проблему несколько раз, только для того, чтобы увидеть, как проблема снова появляется при последующем компиляции (или в другой ОС), я имел большой успех при вызове метода UpdateStyle компонента после добавления всех дочерних компонентов. То есть проблема не возникла после добавления вызова...
например. Следующий псевдо-код заполняет компонент прокрутки, а затем вызывает UpdateStyle, который, похоже, заставляет компонент "исправлять" недопустимые настройки для различных свойств - Min, Max и т.д.
for i := 1 to x do
MyScrollComponent.AddObject(MyObject[i]);
MyScrollComponent.UpdateStyle;
Надеюсь, это сработает и для вас...