Tạo gói thời gian thiết kế cho cấu phần của bạn (nếu bạn chưa có). Trong gói đó, tạo một lớp thực hiện giao diện ISelectionEditor
(cách dễ nhất là lấy từ lớp TSelectionEditor
), ghi đè phương thức RequiresUnits()
ảo của nó để báo cáo bất kỳ đơn vị bổ sung nào bạn muốn xuất hiện trong mệnh đề uses
của bất kỳ Biểu mẫu/Khung/DataModule nào sử dụng thành phần của bạn. Sau đó, hãy đăng ký Register()
chức năng của gói của bạn bằng cách gọi RegisterSelectionEditor()
(ngoài số RegisterComponents()
).
Indy 10 thực hiện chính xác này cho TIdTCPServer
, TIdCmdTCPClient
, và TIdUDPServer
thành phần của nó, để đảm bảo IdContext
và IdSocketHandle
đơn vị được thêm vào uses
khoản. Nhìn vào các đơn vị IdCoreSelectionEditors.pas
và IdRegisterCore.pas
để xem cách Indy thực hiện việc này.
Cập nhật: các IdCoreSelectionEditors.pas
và IdProtocolsSelectionEditors.pas
đơn vị đã được gỡ bỏ từ Indy ngày 10 tháng 3 năm 2014. Tất cả các lớp học SelectionEditor mỗi thành phần đã được thay thế bằng một lớp duy nhất mới được thực hiện trong đơn vị IdRegisterCore
riêng của mình. Lớp SelectionEditor mới này được đăng ký cho tất cả các thành phần Indy, và tìm tất cả các cá thể của bất kỳ thành phần Indy nào đã được đặt ở thời gian thiết kế, sử dụng RTTI của các kiểu dữ liệu của tất cả các tham số và giá trị trả về cho bất kỳ trình xử lý sự kiện được gán nào các đơn vị cần báo cáo để đưa vào mệnh đề uses
.
Nguồn
2013-01-15 06:55:16