Tôi có một hình thức với ba thành phần chính:Làm cách nào để ngăn chặn hai điều khiển căn chỉnh đến dưới cùng từ thứ tự đảo ngược?
- Một FlowPanel được thiết lập để Dồn icon về khách hàng
- Một FlowPanel thứ hai thiết lập để Dồn icon về dưới
- Một Statusbar thiết lập để Dồn icon về Bottom.
Mọi thứ bắt đầu trông tuyệt vời. Nhưng FlowPanel được căn chỉnh ở phía dưới cũng được đặt thành AutoSize. Nó chứa một bảng điều khiển có thể tự sụp đổ. Bảng điều khiển bên trong chứa thông tin tóm tắt mà người dùng có thể quyết định ẩn. Điều này giảm kích thước của FlowPanel đến một kích thước rất nhỏ nhưng không hoàn toàn biến mất. Vẫn còn một nút mà người dùng có thể mở rộng lại bảng tóm tắt.
Sự cố xảy ra khi bảng điều khiển được mở rộng lại khiến FlowPanel phát triển. Tại thời điểm đó, thứ tự của thanh trạng thái và FlowPanel được đảo ngược. Cả hai đều được thiết lập để căn chỉnh phía dưới nhưng bây giờ thanh trạng thái nằm trên FlowPanel của tôi.
Tôi có thể sao chép điều này trong một ứng dụng thử nghiệm mà không có bảng điều khiển Thu gọn chỉ bằng cách đặt nút trên biểu mẫu để xem chiều cao của bảng điều khiển dòng dưới cùng. Nếu chiều cao được tăng, thứ tự thay đổi. Nếu nó bị giảm thì mọi thứ vẫn theo cùng một thứ tự. Mã duy nhất trong biểu mẫu thử nghiệm của tôi là:
FlowPanel2.Height := FlowPanel2.Height * 2;
Tôi cũng đã thử nghiệm bảng điều khiển dưới cùng này là một TPanel thông thường thay vì FlowPanel có cùng kết quả.
Bất kỳ ý tưởng nào về lý do điều này xảy ra và cách ngăn chặn điều đó?
Một quirck khá nổi tiếng và gây kích thích về căn chỉnh và tương tác tự động hóa. Thêm một trình xử lý sự kiện OnResize, trong đó bạn đặt đỉnh của thanh trạng thái thành chiều cao của vùng chứa + 1 hoặc chiều cao + đỉnh của bảng điều khiển cần theo sau. (nhìn vào LOLCats, do đó, một bình luận và không phải là một câu trả lời). –
@Mark: Này, bạn đã ** mũ ** của tôi!:-P –