2010-10-01 28 views
14

Tôi muốn sử dụng Delphi 2009 TGridPanel, nhưng tôi không hiểu làm thế nào để sử dụng nó một cách chính xác.Delphi Làm thế nào để sử dụng TGridPanel

Ví dụ, tôi muốn có một GridPanel với 4 cột cần có 25% phần trăm của chiều rộng GripPanels.

Vì vậy, tôi đặt một GripPanel trên biểu mẫu và thêm 4 ColumnItems. Tôi cung cấp cho các mục cột SizeStyle ssPercent, và bây giờ tôi cố gắng để cung cấp cho mỗi ColummItem một giá trị của 25 (ober thanh tra đối tượng). Nhưng vì một số lý do, thanh tra đối tượng không chấp nhận giá trị 25. Nó tự động được thay đổi thành cái gì đó như '23, 8095238095238 '. Ai đó có thể giải thích cho tôi về cách sử dụng các thành phần này không? Cảm ơn!

Trả lời

13

Khi bạn đặt Value của một cột với SizeStylessPercent, thành phần phân phối tổng mới của tất cả các cột có kiểu ssPercent cho tổng phần trăm có sẵn. Ví dụ: nếu bạn có 4 cột 25% và bạn đặt một cột là 50% bây giờ bạn đã có tổng cộng 125%. Thành phần tính toán 'Giá trị của một lần nữa để có tổng số phân phối tương ứng, tức là 50% -> 40% (100 * 50/125).

Để đặt giá trị của nhiều hơn một cột cùng một lúc, tại thời gian chạy, bạn sẽ bao quanh mã của mình với GridPanel.ColumnCollection.BeginUpdateGridPanel.ColumnCollection.EndUpdate.

Và tại thời điểm thiết kế, hãy chỉnh sửa trực tiếp .dfm. Nhấn 'Alt + F12' khi bạn đang xem biểu mẫu trong trình chỉnh sửa thiết kế, tìm GridPanel của bạn trong trình chỉnh sửa văn bản, chỉnh sửa giá trị của các cột ở đó và sau đó nhấn 'Alt + F12' để quay lại chế độ xem thiết kế.

+0

Cảm ơn, điều đó hoạt động! Lưu ý: Sau khi thả một GridPanel vào form và xóa các hàng và colums tại designtime, các hàng và cột này vẫn tồn tại trong thời gian chạy và bạn phải xóa chúng bằng tay. Hơi lạ một chút. – flinkiy1

+0

Hoặc bạn có thể chọn tất cả 4 cột và viết 25 trong thanh tra đối tượng – VitaliyG

+0

@Vitaliy - Đó không phải là dễ dàng hơn việc chọn tất cả 4 và sau đó gõ 0, được bao gồm trong câu trả lời của Uwe. Câu trả lời của tôi, thay vào đó, là hữu ích nếu bạn sẽ không phân phối đều nhau chiều rộng. Tất nhiên bạn cũng có thể làm điều đó, nhưng, quả thật vậy, các lựa chọn thay thế khác là tốt hơn ở đó. –

14

Nếu bạn muốn đặt tất cả các cột có cùng giá trị, hãy chọn tất cả các cột trong dạng xem cấu trúc và sau đó (giả sử SizeStyle đã được đặt thành ssPercent) đặt Giá trị thành . Điều này sẽ kích hoạt một số tính tự động làm cho tất cả các cột có kích thước bằng nhau.

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