2012-04-24 32 views
5

Tôi đang làm việc trên một thành phần trong Delphi 7Delphi 2006, nơi tôi đang sử dụng đơn vị mà tôi cần thêm vào tệp của dự án mà thành phần được tự động xóa. Giống như cách Eureka Đăng nhập tự động thêm các đơn vị 'ExceptionLog' đến hồ sơ dự án:Tự động thêm đơn vị vào dự án

enter image description here

bất cứ ai có thể cho tôi biết làm thế nào để lập trình thêm một đơn vị để hồ sơ dự án khi tôi thả bộ phận của tôi trên bất kỳ hình thức trong dự án?

+2

Tôi nghĩ rằng các đơn vị nguồn được thêm tự động trong mọi trường hợp. Chắc chắn chỉ khi chúng được biết, khi chúng đã được đưa vào đường dẫn Delphi (hậu quả là gì). – TLama

+2

@Tlama, các đơn vị thành phần được thêm vào đơn vị * * hoặc * module dữ liệu * tự động. Chúng không tự động được thêm vào dự án *. Đó là điều đặc biệt của Eureka Log. –

+0

@Rob, đó là câu hỏi tiếp theo tôi đã đọc sai. Tôi sẽ phải chú ý hơn. Cảm ơn! – TLama

Trả lời

6

Bạn rất có thể phải sử dụng API công cụ mở cho điều đó.

Cũng có thể yêu cầu viết TSelectionEditor cho thành phần của bạn để kích hoạt việc thêm đơn vị (tôi sẽ thử phương thức RequiresUnit).

Mặc dù có cách dễ dàng để thêm đơn vị vào dự án đang hoạt động (mã bên dưới) chỉ hoạt động cho dự án đang hoạt động có thể không phải là dự án mà biểu mẫu thuộc về bạn đang thêm thành phần vào. Ngoài ra, nó thêm đơn vị vào cuối mệnh đề sử dụng.

uses 
    ToolsAPI; 

var 
    currentProject: IOTAProject; 
begin 
    currentProject := GetActiveProject(); 
    currentProject.AddFile('MyUnit.pas', True); 

Bạn có thể kiểm tra GExperts source code vì nó chứa một lớp (TUsesManager) có thể phân tích đơn vị và sửa đổi mệnh đề sử dụng.

+0

Tôi mong đợi 'AddFile' sẽ thêm một mục như' sử dụng MyUnit trong 'MyUnit.pas'', mà sẽ không thích hợp cho một thành phần thư viện. Thành phần chỉ nên thêm tham chiếu đơn vị chứ không phải tham chiếu tệp, như được hiển thị trong hình trong câu hỏi. –

+0

@Rob Nó làm như bạn nói. Đó chỉ là một ví dụ cho thấy OTA có thể làm như vậy. Nhưng tôi không tìm được phương pháp thích hợp. Đó là lý do tại sao tôi đã đề cập đến nguồn GExperts. –

+0

+1: Để đề cập đến TUsesManager – menjaraz

0

Tỷ lệ cược.

Tôi đã sử dụng để đặt dpr mặc định của mình để chứa bên cạnh không có gì do đó hộp công cụ của tôi rất trống. Vì vậy, nếu nó đã được trong hộp công cụ của tôi nó đã được trong dpr - những gì bạn đang gặp vấn đề với - bình thường nếu nó trong hộp công cụ, nó đã có trong dpr.

+0

i có nghĩa là, thành phần của tôi cần một 'đơn vị' trong' dpr', và tôi không thể hỏi/chuyển tiếp trên 'người dùng' để đặt nó ở đó..so tôi cần phải tự động hóa cùng một – PresleyDias

+0

Nếu không có bản sao của tôi delphi để bàn tay, bạn có thể thiết lập một điều kiện trong đơn vị bạn nên thêm vào dpr, và nếu nó không có trong các đơn vị khác sẽ được thêm vào tệp .pas - hãy ném lỗi biên dịch với "Vui lòng thêm đơn vị x vào tệp dpr ".. – BugFinder

0

chuyển dự án> Tùy chọn Eurekalog và tắt Eurekalog.

+5

tôi nghĩ rằng bạn đã không nhận được câu hỏi của tôi, tôi có nghĩa là như đăng nhập eureka thêm' ExceptionLog' vào 'dpr'. làm thế nào để làm tương tự – PresleyDias

Các vấn đề liên quan