2011-11-02 27 views
7

Tôi đang cố tạo ứng dụng đầu tiên dựa trên FireMonkey và tôi đã đâm vào tường. Điều khiển danh sách ảo duy nhất tôi có thể tìm thấy là tGrid.Firemonkey: Tạo kiểu tGrid hoặc các thành phần Lưới/Danh sách thay thế (Ảo)

Thành phần này khá tốt, nhưng tôi không thể tìm ra cách mở rộng hoặc tùy chỉnh nó. Tôi nhận được rằng có tCheckbox cột, tImage cột vv, nhưng nếu tôi cần một ButtonColumn hoặc một cái gì đó như thế này?

Ngoài ra, tôi muốn tạo kiểu cho một hàng, dựa trên trạng thái của dữ liệu mà nó đại diện.

Ví dụ: nếu dữ liệu được biểu thị trong hàng có "Error = True", nó sẽ được hiển thị bằng màu đỏ.

Có ai có vấn đề tương tự không? Hoặc tìm thấy các thành phần danh sách/lưới ảo thay thế? Hoặc thậm chí chỉ là một số lời khuyên về việc sử dụng thành phần tGrid. Những thành phần này là khá cần thiết trong tất cả các ứng dụng cơ sở dữ liệu vì vậy nó phải là một yêu cầu khá phổ biến.

Cũng giống như một lưu ý, tôi không nghĩ rằng TGrid hỗ trợ Kéo & Bỏ hàng?

Tôi đã nhìn Firemonkey version of VirtualTreeViewFiremonkey and large amounts of data

+0

Artis có thể tôi hơi muộn với điều này. Im mới trong khỉ lửa embarcadero và có một loạt các câu hỏi liên quan đến FMX Grid. Bạn có thể đăng mã của bạn để tạo kiểu cho cột Tcolumn không? Cảm ơn John –

+0

Xin chào, tôi sẽ đăng một số mã khi tôi quay lại máy tính. Tôi phải nói rằng mặc dù giải pháp không phải là tất cả những gì thanh lịch cuối cùng. Tôi có lẽ sẽ đi cho thành phần bảng mới của TMS. Giải pháp của tôi là lỗi và không dễ bảo trì. –

Trả lời

6

Nếu bạn nhìn vào các nguồn khác nhau, TCheckColumn chỉ 15 dòng mã. Nếu bạn cần tạo lớp con cháu của cột của bạn thì nó khá đơn giản. Đây là một giải pháp, nếu không bạn có thể tự động tạo một số thành phần trong các tế bào của bạn và sau đó đúc trẻ em khi kiểm tra các đạo cụ (TColumn.CellControlByRow() trả lại một TControl và trẻ em sẽ là những gì bạn đã đặt trong đó).

Khi bạn muốn 'tạo kiểu' cho hàng của mình, tôi khuyên bạn nên viết lớp TColumn của riêng bạn, ngay cả khi bạn có thể vẽ trong Sự kiện OnPaint.

+0

Xin cảm ơn vì câu trả lời của bạn. Tạo cột của riêng tôi dường như thực hiện thủ thuật. Nó sẽ tất nhiên không hiển thị trong trình soạn thảo cột, nhưng tôi có thể thêm nó bằng cách sử dụng tGrid.AddObject Bây giờ tôi có quyền kiểm soát của cột và các ô, có vẻ như dễ dàng hơn để làm phần còn lại. –

+2

Nếu có ai quan tâm; Tôi đã giải quyết kiểu dáng của các ô bằng cách ghi đè quy trình UpdateColumn của cột TColumn. Trong này tôi đã thêm một chức năng, tương tự như GetValue, GetCellStyleLookup, Điều này được xuất bản trong lưới giống như GetValue. Vì vậy, bây giờ tôi có thể áp dụng một Style (Created with the Style Editor) cho bất kỳ Cell nào dựa trên nội dung ảo. Tôi không có ý tưởng nếu đây là cách tốt nhất/dự định để làm điều đó, nhưng nó hoạt động. và được cung cấp tài liệu thưa thớt như vậy tôi không có thời gian để tìm ra cái gì khác. –

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