2011-10-19 27 views
7

Tôi có một TGrid với một hỗn hợp các cột (ImageColumn và StringColumn). Tôi có thể cư trú nó bằng cách sử dụng sự kiện onGetValue hoạt động tốt. Câu hỏi của tôi là:Delphi Firemonkey TGrid cách cập nhật

  1. Làm cách nào để buộc toàn bộ lưới xây dựng lại và gây ra sự kiện onGetValue? Tôi đang sử dụng UpdateStyle tại đơn nguyên.

  2. Làm cách nào để cập nhật một ô trong lưới?

Trả lời

5

Lưới chỉ cập nhật các ô hiển thị! Grid1.UpdateStyle buộc lưới điện phải xây dựng lại và đang gây ra sự kiện onGetValue nhưng sự kiện chậm. Grid1.ReAlign nhanh hơn nhiều.

Ngay khi các ô hiển thị, chúng sẽ được cập nhật.

Cập nhật 1 tế bào:

procedure TForm1.UpdateCell(col, row: integer); 
var 
    cell: TStyledControl; 
begin 
    cell := Grid1.Columns[col].CellControlByRow(row); 
    if Assigned(cell) then 
    cell.Data := 'Note: use the same datasource as OnGetValue'; 
end; 

tế bào không được chỉ định khi hàng không bao giờ trở nên hữu hình.

+0

cảm ơn câu trả lời, câu trả lời hoàn hảo. –

2

Tùy chọn khác là gọi số Grid1.beginUpdate; thực hiện thay đổi và sau đó gọi Grid1.endupdate;, điều này sẽ làm cho lưới hiển thị tính toán lại và vẽ lại.

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