Cách chính xác để triển khai hành vi "tìm khi bạn nhập" trên thành phần hậu duệ TComboBox có kiểu là csOwnerDrawFixed là gì?Cách triển khai tìm khi bạn nhập vào hậu duệ TComboBox
Trả lời
- Sử dụng TTimer (hãy gọi nó là timIncSearch). Đặt (tại thời điểm thiết kế) các thuộc tính sau: Đã bật: = False;
Khoảng thời gian: = 400; // tìm thấy theo kinh nghiệm - đó là độ trễ được sử dụng trong Windows Explorer
... và trong OnTimer bạn sẽ viết công cụ tìm kiếm của mình. Hãy chắc chắn rằng dòng đầu tiên ở đây sẽ là timIncSearch.Enabled: = False; Cũng bởi vì bạn sử dụng csOwnerDrawFixed có lẽ nó là tốt hơn để thực thi một repaint kiểm soát của bạn.
Là một sang một bên, - chỉ đoán vì bạn đã không cung cấp cho chúng tôi nhiều chi tiết - có lẽ bạn phải móc OnEnter và OnExit sự kiện để tùy chỉnh mở và đóng danh sách thả xuống. (Normaly, điều này được thực hiện bằng cách thiết lập thuộc tính AutoDropDown cho phù hợp)
- Trong ComboBox.KeyPress của bạn, bạn sẽ viết
with timIncSearch do
begin
Enabled:=False;
Enabled:=True;
end;
... cũng chăm sóc ở đây, có lẽ bạn phải có một 'trường hợp Key của' xây dựng để xử lý # 13 riêng biệt (hoặc bất cứ điều gì).
gợi ý khác:
- tùy thuộc vào tình hình của bạn, có lẽ bạn phải móc (hay còn?) Các onKeyDown (nếu bạn muốn xử lý các phím đặc biệt như ví dụ BackSpace, Del, mũi tên vv - tham. trong trường hợp sự kiện lặp lại chính nó khi phím được nhấn xuống) và/hoặc OnKeyUp (nếu bạn muốn xử lý tương tự như trên nhưng mà không cần tính năng tự động lặp lại phím của bàn phím).
Trước tiên, bạn cần quyết định xem bạn có cần chức năng "* my_string *" hoặc "my_string *" hay không, có nghĩa là quyết định xem bạn có tìm kiếm bên trong chuỗi hay chỉ từ đầu. Khi bạn đã tìm ra, sau đó bạn sẽ phải buld chỉ mục của tất cả các từ được nhập vào hộp kết hợp và tìm kiếm nó sau mỗi lần gõ phím. Tôi không nghĩ rằng việc xử lý OnTimer là một cách tiếp cận đúng. Tôi thà sử dụng "OnChange" hoặc tương tự. Bạn có thể làm điều đó với TStringList được sắp xếp (dupignore) hoặc có thể xây dựng chỉ mục bằng cách sử dụng các bảng băm (việc triển khai tùy thuộc vào bạn). Kiến trúc phụ thuộc vào số chuỗi tối đa mà combo của bạn có thể chứa. Nếu nó là một số quan trọng hơn bạn có thể sử dụng bảng băm (một băm Cardinal chỉ đến nhiều chỉ mục: mảng, TList ...)
- 1. ActiveSupport :: DescendantsTracker.descendants không trả về hậu duệ
- 2. Cách triển khai api Tìm kiếm khi bạn nhập (SAYT) trong ứng dụng Rails 3
- 3. SASS: Quy tắc hậu duệ trực tiếp?
- 4. Sử dụng hậu duệ TownedCollection trong Delphi
- 5. CSS để chọn hậu duệ gần nhất?
- 6. REST - HTTP DELETE - ngữ nghĩa - chỉ xóa hậu duệ
- 7. Vòng qua tất cả hậu duệ của một div - chỉ
- 8. Tại sao tràn-x: clip ẩn hậu duệ của tôi?
- 9. CSS chọn nhiều hậu duệ của một phần tử khác
- 10. Cách lọc nghề nghiệp khi bạn nhập vào MVC3
- 11. Tại sao các hậu duệ của tôi bị cắt bỏ khi sử dụng CSS @ font-face?
- 12. Tổ tiên XPath và hậu duệ trong bản sao XSL của
- 13. Android - Cách tắt nút Tìm kiếm, cách triển khai onSearchRequested()?
- 14. Tại sao bộ lọc không được gắn vào bộ ghi gốc để truyền tới logger hậu duệ?
- 15. Làm cách nào để triển khai/nhập gói chiến dịch vào Netbeans
- 16. Cách triển khai các tiêu đề được biên dịch trước vào dự án của bạn
- 17. Làm cách nào tôi có thể truy vấn trực tiếp các hậu duệ?
- 18. Cách nhập bạn bè trên Facebook vào trang web
- 19. Cách triển khai tìm kiếm bằng giọng nói đến SearchView
- 20. Đối tượng thử nghiệm cho mối quan hệ tổ tiên/hậu duệ trong JavaScript hoặc Jquery
- 21. Thêm tập tin vào một lần nhấp khi triển khai
- 22. Cách triển khai tìm kiếm như Stack Overflow
- 23. Cách triển khai tìm kiếm String đơn giản
- 24. Đối tượng ghi đè mục tiêu-c với loại hậu duệ của nó
- 25. Cách triển khai máy chủ WHOIS của riêng bạn?
- 26. AJAX: Trì hoãn tìm kiếm khi nhập vào trường mẫu
- 27. Cách triển khai "tìm hoặc tạo" với Dữ liệu Ember
- 28. JavaScript: Cách nhận văn bản từ tất cả các hậu duệ của một phần tử, bỏ qua các tập lệnh?
- 29. Truy vấn XPath với hậu duệ và văn bản con cháu() predicates
- 30. Phù hợp với hậu duệ thứ bậc phù hợp với bộ chọn jQuery
Tùy thuộc, bạn chỉ muốn thực hiện phần "tìm kiếm khi bạn nhập" mà không hiển thị bất kỳ phản hồi nào đối với người dùng (cách Firefox thực hiện trên danh sách dài), hoặc bạn có muốn hiển thị một điều khiển phụ nhỏ hiển thị chuỗi tìm kiếm hiện tại không? – dguaraglia