Đối với IDE là có thể tìm thấy một DataModule (đối với tài sản không một lần thiết lập) lúc thiết kế, sau đây phải đúng:
- Các DataModule phải được mở/tạo ra ít nhất một lần trong phiên họp của IDE (có thể đóng sau đó trong phiên), xem (*), và
- Đơn vị DataModule phải có mặt trong mệnh đề sử dụng của đơn vị Biểu mẫu.
Đối với IDE là có thể tìm thấy một DataModule một lần nữa (đối với tài sản đã được thiết lập) lúc thiết kế, sau đây phải đúng:
- Các DataModule phải được mở/tạo ra ít nhất một lần trong suốt phiên họp của IDE (nó có thể được đóng lại sau đó trong phiên), hay
- đơn vị DataModule phải có mặt trong những ứng dụng điều khoản của đơn vị mẫu, hay
- các DataModule un nó phải được thêm vào tệp dự án.
Đối với chương trình có khả năng tìm thấy một DataModule (đối với tài sản đã được thiết lập) trong thời gian chạy:
- Các DataModule phải được tạo ra, hay
- Đơn vị DataModule phải có mặt trong mệnh đề sử dụng của đơn vị Biểu mẫu.
Đối với chương trình có khả năng tìm thấy một DataModule (đối với tài sản không xác định) trong thời gian chạy:
- Đơn vị DataModule phải có mặt trong những ứng dụng điều khoản của đơn vị mẫu.
Do đó, về mặt lý thuyết, nếu đáp ứng đủ các điều kiện phù hợp, đơn vị DataModule của bạn có thể được bỏ qua từ mệnh đề sử dụng của Biểu mẫu. Nhưng để tự tin về liên kết thời gian chạy, tôi sẽ kết luận rằng không có an toàn hoặc ít nhất không có lối thoát thuận tiện từ việc thêm đơn vị DataModule vào điều khoản sử dụng của đơn vị Biểu mẫu.
(*) Trong các dự án lớn với nhiều hình thức và DataModules, nó là rất phổ biến để không mở cửa hàng DataModule trong IDE, và các thiết lập có thể dễ dàng bị lạc. Đang phụ thuộc vào designtime ràng buộc bởi tên DataModule sau đó có thể dẫn đến các hình thức của bạn không bao giờ hiển thị bất kỳ dữ liệu (hoặc hình ảnh trong trường hợp này). Đây là một lỗi rất khó lường trước được khi không kiểm tra tất cả các thiết lập DataModule của Form. Một giải pháp cho điều đó là thiết lập tất cả các thuộc tính tham chiếu đến các thành phần của DataModule theo cách thủ công trong thời gian chạy, tốt nhất là trong một hàm khởi tạo thừa hoặc trong một trình xử lý sự kiện OnCreate. Điều này cũng ngăn các vấn đề đặt tên trùng lặp với nhiều phiên bản DataModule, như là this question thỏa thuận với.
Tôi khuyên bạn nên di chuyển các đơn vị đó sang điều khoản Sử dụng thực hiện. điều này bảo vệ DFM và làm cho giao diện sử dụng khoản sạch hơn. –