thể trùng lặp:
How to avoid TDbgrid scrolling when returning to a previous locationLàm cách nào để khôi phục chế độ xem bản ghi TDBGrid về điều kiện trước khi làm mới?
Tôi đang tìm kiếm một cách để lưu và khôi phục lại vị trí di chuyển dọc của một Delphi TDBGrid
sau khi làm mới đã xảy ra. Hiện tại, lưới sẽ tự đặt lại để bản ghi đã chọn xuất hiện ở giữa danh sách các bản ghi.
Lúc đầu, các thuộc tính LeftCol
và TopRow
dường như là giải pháp, nhưng chỉ LeftCol
hoạt động. Giá trị TopRow
luôn là 1 và không bao giờ thay đổi. Nó dường như là một vị trí vào bộ đệm bản ghi bên trong của lưới, được đặt thành số hàng hiển thị trong lưới. Đó là, có vẻ như FBuffers trượt lên và xuống, nhưng TopRow
vẫn là 1 ở tất cả các lần.
Một ví dụ cụ thể về những gì tôi nhìn thấy là:
- Lưới hiển thị 11 hồ sơ của một
TClientDataSet
, bắt đầu với kỷ lục 5, displayng tuần tự để ghi lại 15. - Con trỏ kỷ lục được lựa chọn là trên bản ghi 15 (bản ghi cuối cùng trong chế độ xem).
- Tập dữ liệu được làm mới thông qua một
TDataSetProvider
được liên kết với một sốTADODataSet
. (Một .Open hoặc .Refresh gọi). - Tập dữ liệu.Lệnh pháp được sử dụng để giữ lại bản ghi đã chọn thực tế khi đối mặt với việc chèn/xóa.
- Những thay đổi lưới điện nên kỷ lục 15 là ở trung tâm và nó được hiển thị hồ sơ 10 đến 20.
Có điều gì đó có thể được lưu/phục hồi/thực hiện sao cho lưới có thể được phục hồi ban đầu của nó xem cấu hình hiển thị các bản ghi 5-15 với con trỏ trên cùng một bản ghi đã chọn, bất cứ nơi nào nó xuất hiện?
Điều gần nhất tôi có thể tìm thấy trong nhiều nỗ lực tìm kiếm của tôi là một vấn đề đã được giải quyết trong Delphi 3.0 với TopRow, LeftCol, ở đây: http://www.delphigroups.info/2/79/314206.html
Spelunking qua DBGrids.pas không lưới cho tôi một phương pháp định vị các con trỏ đệm liên quan đến các bản ghi dữ liệu cơ bản.
tôi là OP của liên kết đầu tiên của François ("Làm thế nào để tránh ...") và thực hiện giải pháp của Sertac ("đặc biệt là câu trả lời này") tháng trước. Nó đã làm việc tuyệt vời cho tôi. – RobertFrank
Tôi kết hợp câu trả lời "đặc biệt này" vào giải pháp của mình. Nó hoạt động rất tốt. Loại mong muốn tôi đã phát hiện ra nó trước khi đăng một bản dupe, nhưng cảm ơn rất nhiều vì đã chỉ cho tôi đúng hướng. – cdburgerjr