2012-09-06 9 views
10

Một trong các ô trong DBTreeListView của tôi được liên kết với một mục lưu trữ là một thanh tiến trình.Làm cách nào để kích hoạt trình chỉnh sửa tại chỗ cho ô lưới hiển thị dưới dạng thanh tiến trình?

Tôi muốn có thể chỉnh sửa tiến trình được hiển thị bằng cách nhấp vào ô này. Ở giai đoạn này, ứng dụng của tôi sẽ thay đổi ô của nó thành một mục kho lưu trữ khác: một trường văn bản nơi tôi có thể chèn một giá trị. Khi tiêu điểm được thay đổi thành một ô khác, thanh tiến trình của tôi sẽ được hiển thị lại, hiển thị một giá trị mới. Làm thế nào để tôi làm điều này?

DBTreeListView có các sự kiện cột OnGetEditingPropertyOnGetEditProperties. Tôi có thể sẽ sử dụng một (hoặc cả hai), nhưng không thể đưa ra bất kỳ ý tưởng tốt.

+2

Hãy làm rõ DBTreeListView thành phần, là nó TTreeView tiêu chuẩn hoặc nó là một số thứ 3 đảng thành phần? – Flanker

+0

Bỏ phiếu để đóng, vì điều khiển TDBTreeListView không tồn tại (theo cả Google và Bing). DBTreeView không tồn tại như một đứa trẻ của Virtual TreeView. – Johan

Trả lời

0

Điều này có thể đơn giản. Bạn nên xử lý bấm vào thanh tiến trình này và hiển thị trình soạn thảo trên nó. Bạn cần phải xử lý cuộn và nhấp vào một nơi khác để loại bỏ trình chỉnh sửa. Và trong trường hợp cuộn quá xa - trình chỉnh sửa sẽ bị ẩn.

bước:

  1. Tạo biên tập viên ẩn cho sự tiến bộ
  2. Xử lý OnClick để xem cây mục
  3. editor hiển thị và thiết lập tập trung
  4. On editor nhập (hoặc tab) lưu thông tin tiến bộ
  5. Khi nhấp vào biểu mẫu hoặc một phần khác của chế độ xem dạng cây - hãy ẩn trình chỉnh sửa (lưu/loại bỏ các thay đổi được chỉ định theo chính sách của bạn)
  6. O n cuộn xem cây di chuyển các biên tập viên và khi giới hạn của cha mẹ không chồng chéo giới hạn của biên tập viên - giấu nó

Trân trọng, Vladimir