2011-09-20 29 views
39

Chúng tôi đang trải qua những gì có vẻ là một lỗi lạ trong thành phần ScrollBox của Firemonkey (kể từ TGrid kế thừa từ TScrollBox nó cũng ảnh hưởng đến tất cả các lưới). Trên một số ouf máy phát triển của chúng tôi, tất cả mọi thứ hoạt động tốt, trong khi trên những người khác các lỗi xảy ra. Chúng tôi không thể phát hiện bất kỳ mẫu nào giữa các hệ thống (chúng tôi đã kiểm tra OS, phần cứng đồ họa, phiên bản DirectX).FireBoxkey ScrollBox Bug

sinh sản:

  1. Tạo một ứng dụng FireMonkey mới. Đặt số TScrollBox vào biểu mẫu.
  2. Thêm nút vào hộp cuộn và đặt vị trí thẳng đứng thành 500000.
  3. Bắt đầu ứng dụng và kiểm tra xem nút có được hiển thị khi bạn cuộn đến cuối hộp cuộn hay không.

Nếu lỗi xảy ra, nút không hiển thị.

Khi sử dụng lưới, điều này dẫn đến các dòng 1-19047 được hiển thị chính xác và tất cả các dòng từ 19047 trở lên không được hiển thị.

Có ai có ý tưởng gì có thể gây ra điều này không? Hoặc bất kỳ ý tưởng làm thế nào chúng ta có thể xác định vấn đề một cách chi tiết hơn?

+0

Nhân tiện ... Dòng 19047 không được hiển thị chính xác trong Thành phần TGrid. Nó chỉ hiển thị một phần. –

+0

Tại một số hệ thống, tôi nhận được một ngoại lệ hoạt động điểm động không hợp lệ, khi cố gắng sử dụng thanh cuộn. –

+0

hoạt động tốt trên các cửa sổ 32 bit của tôi xp – VibeeshanRC

Trả lời

2

Sau khi có đủ loại vấn đề với cuộn, tôi đã đi đến kết luận rằng có một vấn đề khởi tạo với các thành phần cuộn trong firemonkey, biểu hiện trong hành vi di chuyển tinh quái. Đôi khi nó sẽ làm việc và đôi khi nó sẽ không ...

Sau khi nghĩ rằng tôi đã khắc phục sự cố nhiều lần, chỉ để xem vấn đề xuất hiện lại trên một biên dịch tiếp theo (hoặc một hệ điều hành khác), tôi đã có nhiều thành công trong gọi phương thức UpdateStyle của thành phần sau khi thêm tất cả các thành phần con. I E. vấn đề đã không tái xuất hiện kể từ khi thêm cuộc gọi ...

Ví dụ: Mã giả sau populates một thành phần cuộn sau đó gọi UpdateStyle mà dường như để buộc các thành phần để 'sửa chữa' Cài đặt không hợp lệ cho thuộc tính khác nhau - Min, Max, vv

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

Hope làm việc này cho bạn quá ...

Các vấn đề liên quan