Có cách nào để tìm ra hàng nào hiện tại trong một TDBGrid không?Tìm hàng hiện tại trong TDBGrid của Delphi
Trả lời
Tôi không chắc chắn nếu tôi hiểu câu hỏi của bạn, nhưng tôi sẽ cố gắng trả lời và có thể bạn có thể làm rõ nếu đây không phải là những gì bạn đang yêu cầu.
Vì TDBGrid được gắn với nguồn dữ liệu, hàng hiện tại giống với hàng hiện tại trong nguồn dữ liệu. Bạn có thể truy vấn DataSource bằng cách xem xét giá trị khóa chính hoặc thuộc tính RecNo để xác định bản ghi nào là bản ghi hiện tại.
Nếu bạn không muốn phụ thuộc vào nguồn dữ liệu để cung cấp số bản ghi và bản ghi hiện tại (ví dụ vì bạn đang sử dụng con trỏ đơn hướng trên máy chủ từ xa), thì kỹ thuật truy cập thuộc tính của kiểm soát lưới cơ bản có thể được sử dụng.
Xem this answer cho câu hỏi StackOverflow tương tự.
Bạn bắt đầu nói chính xác, nhưng liên kết bạn chỉ cho thấy cách nhận số điểm kỷ lục nhưng quan trọng nhất (RecNo hoặc Row hoặc CurrentRow, v.v.) không thể lấy trực tiếp từ lưới. Xin lỗi –
@Carlos: Điều gì khiến bạn không thể viết 'Row: = TDummyGrid (MyDBGrid) .Row' thay vì' RowCount: = TDummyGrid (MyDBGrid) .RowCount'? Một chút suy nghĩ là cần thiết, bạn biết ... – mghie
Vâng ... Tôi muốn hiển thị màu thay thế trên lưới của tôi, nhưng, thuộc tính ROW không phải là "liên tục" giữa các thay đổi con trỏ, tức là, nếu bạn di chuyển con trỏ trên hoặc xuống trên lưới, thay đổi lựa chọn, thuộc tính ROW thay đổi cho TẤT CẢ các hàng có thể nhìn thấy cùng một lúc. Tôi cần một cách để xác định từng dòng riêng biệt, độc lập với hàng đã chọn hiện tại. Bây giờ tôi đang sử dụng RecNo của tập dữ liệu được liên kết, nhưng trên bộ dữ liệu một chiều, thuộc tính này là vô dụng. Như bạn có thể thấy, NHỮNG BÍ MẬT TUYỆT ĐỐI NGH THA LÀ YÊU CẦU, nhưng BẠN là người lười biếng. Xin lỗi ... –
Bạn có thể làm điều đó như thế này:
1 - Định nghĩa một lớp địa phương đó là một bản sao của TDBGrid (điều này sẽ cho phép bạn truy cập vào các phương pháp tư nhân):
type
THackDBGrid = class(TDBGrid);
2 - Sau đó, bạn có thể cast đến lớp được xác định tại địa phương của bạn, và kéo từ phương pháp riêng như trong:
function TfrmMain.GetFieldValue(colnum : integer): string;
begin
Result := THackDBGrid(grdMain).GetFieldValue(colnum);
end;
Hoặc, để có được hàng #:
function CurrentRowNumber: integer;
Result := THackDBGrid(grdMain).Row;
end;
Kỹ thuật này cũng hữu ích trong các trường hợp khác, nhưng tôi không thể xác nhận tín dụng. I got it from here.
- 1. Đếm các hàng trong một TDbGrid
- 2. Cách sửa đổi giá trị ô trong Delphi TDBGrid
- 3. Phát hiện ô nào đã được nhấp trong TDBGrid khi dgRowSelect được đặt thành True?
- 4. Lấy chỉ mục hàng bảng của hàng hiện tại
- 5. Tìm vị trí của tệp m hiện tại trong MATLAB
- 6. Cách gửi_after trong hàng đợi hiện tại?
- 7. Lấy số hàng hiện tại?
- 8. Tìm tệp hiện tại trong IntelliJ
- 9. Tìm số trang hiện tại trong Wordpress
- 10. Tìm số trang hiện tại trong jqGrid
- 11. Delphi: Tại sao IdHTTP.ConnectTimeout thực hiện yêu cầu chậm hơn?
- 12. Tìm tên của tệp cấu hình hiện tại
- 13. Tìm ngôn ngữ của bàn phím Android hiện tại
- 14. Cách tìm ngày hiện tại của năm bằng PHP?
- 15. tìm ngày bắt đầu (Thứ Hai) của tuần hiện tại
- 16. Nhận hàng đợi công văn hiện tại?
- 17. Cách tìm vị trí hiện tại của bạn với CoreLocation
- 18. Nhận dạng giọng nói của Vista tại Delphi
- 19. Làm thế nào để có được thời gian hiện tại trong một TimeZone khác trong Delphi?
- 20. Phát hiện hoạt động đĩa trong Delphi
- 21. Tệp Delphi XE3 Không tìm thấy GIFImage.dcu
- 22. Delphi - khôi phục hàng thực tế trong DBGrid
- 23. Cách tìm mức giao dịch hiện tại?
- 24. Từng bước nâng cấp của Indy 10 tại Delphi 2009
- 25. Cách tìm con trỏ đang mở hiện tại trong Oracle
- 26. Tìm ngôn ngữ người dùng hiện tại
- 27. Cách tìm mức thu phóng hiện tại trong Google Map?
- 28. Làm thế nào để có được hàng trên bảng (hoặc trước) hàng hiện tại của tôi trong jQuery?
- 29. Akka: Cách tìm các nút hiện tại trong một cụm?
- 30. Cách tìm vị trí dịch hiện tại trong Canvas?
Tôi nghĩ rằng bạn cần phải cung cấp một chút làm rõ về câu hỏi của bạn, bạn có nghĩa là hàng trong truy vấn hoặc hàng trong DBGrid? –