2011-09-20 10 views
39

Przeżywamy coś, co wydaje się dziwnym błędem w składniku ScrollBox Firemonkey (od TGrid dziedziczy po TScrollBox, dotyczy także wszystkich sieci). Na niektórych naszych maszynach programistycznych wszystko działa dobrze, podczas gdy na innych pojawia się błąd. Nie udało się wykryć żadnego wzorca między systemami (sprawdziliśmy system operacyjny, sprzęt graficzny, wersję DirectX).Firemonkey ScrollBox Błąd

Rozmnażanie:

  1. Utwórz nową aplikację FireMonkey. Umieść TScrollBox w formularzu.
  2. Dodaj przycisk do paska przewijania i ustaw jego pozycję pionową na 500000.
  3. Uruchom aplikację i sprawdź, czy przycisk jest wyświetlany po przewinięciu do końca scrollbox.

W przypadku wystąpienia błędu przycisk nie jest widoczny.

Podczas korzystania z siatki powoduje to, że linie 1-19047 są wyświetlane poprawnie, a wszystkie wiersze od 19047 i wyższych nie są wyświetlane.

Ma nikogo pojęcia, co może być przyczyną tego? Albo pomysł, jak możemy dokładniej zidentyfikować problem?

+0

Nawiasem mówiąc ... Linia 19047 nie jest poprawnie wyświetlana w komponencie TGrid. Widoczne jest tylko częściowo. –

+0

W niektórych systemach otrzymuję niepoprawny wyjątek operacji zmiennoprzecinkowej podczas próby użycia paska przewijania. –

+0

to działa dobrze na moim 32-bitowym Windows XP – VibeeshanRC

Odpowiedz

2

Po wielu problemach z przewijaniem, doszedłem do wniosku, że istnieje problem z inicjalizacją przewijania składników w firemonkey, który przejawia się w podejrzanym zachowaniu przewijania. Czasami to zadziała, a czasami nie będzie ...

Po tym, jak pomyślałem, że naprawiłem problem kilka razy, tylko po to, aby obejrzeć problem ponownie pojawiający się na kolejnej kompilacji (lub innym systemie operacyjnym), odniosłem wiele sukcesów w wywołanie metody UpdateStyle komponentu po dodaniu wszystkich składników potomnych. To znaczy. problem nie powrócił od czasu dodania połączenia ...

E.g. Poniższy pseudokod zapełnia komponent przewijania następnie wywołuje UpdateStyle co wydaje się zmusić komponent do „naprawić” nieprawidłowe ustawienia dla różnych właściwościach - Min, Max itp

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

nadzieję, że to działa dla Ciebie zbyt ...

Powiązane problemy