2009-04-08 30 views
10

Thật dễ dàng, đủ để tìm tất cả các phụ thuộc bên ngoài của bạn. Chỉ cần chạy chương trình và mở cửa sổ thông tin Mô-đun. Nhưng làm cách nào tôi có thể tìm thấy tất cả các phụ thuộc nội bộ của mình? Tôi biết chương trình giữ một danh sách tất cả các đơn vị, bởi vì tôi đã truy tìm theo cách của mình thông qua mã khởi tạo một hoặc hai lần. Nhưng có cách nào dễ dàng để truy cập danh sách này từ trình gỡ rối không?Làm thế nào tôi có thể tìm thấy tất cả các đơn vị trong ứng dụng Delphi của tôi?

Trả lời

6

khác, mà đúng hơn là cách rườm rà, là để tạo ra một tập tin bản đồ, nó chứa một danh sách của tất cả các đơn vị được sử dụng trong một chương trình.

cũng thấy câu trả lời này: How can I find all the units in my Delphi app?

4

Bạn đã xem Pascal Analyzer hoặc phiên bản giới hạn miễn phí, Icarus, từ Peganza Software? Họ sẽ tạo ra "sử dụng các báo cáo" cho bạn biết những gì module sử dụng những gì người khác, vì vậy mà sẽ cung cấp cho bạn những thông tin bạn đang sau.

Marc

3

tôi biết ít nhất hai cách bạn có thể thử để có được một cái nhìn của tất cả các đơn vị sử dụng trong dự án của bạn

  1. Ctrl-Shift-B mở trình duyệt đối tượng. Nếu tôi không nhầm, ở đây bạn có thể có được một cái nhìn của các đơn vị được sử dụng. Tôi không hoàn toàn chắc chắn về phương pháp này và không có Delphi có sẵn để xác minh nó.
  2. Sử dụng Modelmaker; Người tạo mẫu có thể cung cấp cho bạn một cái cây giống như quan điểm của tất cả các phụ thuộc đơn vị của bạn. Nhìn vào phần Visualizing existing code để biết thêm thông tin.
0

Có một tiện ích (khá cũ) có tên là UsgParse. Nó xây dựng một khung nhìn tre của tất cả các đơn vị được tham chiếu bởi một dự án.

Tôi tìm thấy một bản sao trên trang web NexusDB qua http://coding.derkeiler.com/Archive/Delphi/borland.public.delphi.thirdpartytools.general/2004-03/0231.html

nguồn: http://www.nexusdb.com/downloads/USGParse/USGParse_src.zip

nhị phân: http://www.nexusdb.com/downloads/USGParse/USGParse.zip

4

GExperts có một công cụ Project Dependencies. Tôi đã sử dụng nó trước khi cố gắng theo dõi các đơn vị đã qua sử dụng. Bạn không thể tìm kiếm trong đó nhưng bạn có thể xuất danh sách sang tệp CSV và tìm kiếm ở đó. Điều này cũng chỉ liệt kê những gì có trong phần sử dụng. Nếu bạn có một mô-đun đi kèm mà không được sử dụng, nó sẽ vẫn hiển thị.

6

Tôi sử dụng GExperts Phụ thuộc dự án.
Với "Được sử dụng bởi ...", bạn có thể xem các đơn vị được bao gồm nhưng không được sử dụng bởi bất kỳ ai. Nhưng bạn không thể thấy đơn vị được bao gồm trong các mệnh đề sử dụng có thể bị xóa khi chúng không có bất kỳ mã nào thực sự được gọi.

Dưới đây là sự giúp đỡ:


Dự án Dependencies chuyên gia phụ thuộc dự án

này cho phép bạn xem những gì các đơn vị một đơn vị cụ sử dụng, và lần lượt những đơn vị sử dụng một đơn vị cụ thể. Khi chuyên gia này được kích hoạt, nó phân tích tất cả các mã nguồn của dự án hiện tại để sử dụng các mệnh đề và xây dựng một danh sách các phụ thuộc. Để xem thông tin phụ thuộc cho một đơn vị cụ thể, hãy nhấp vào nó trong ngăn bên trái. Khung bên phải sẽ chứa thông tin phụ thuộc. Phụ thuộc gián tiếp là các đơn vị được sử dụng bởi các đơn vị đã sử dụng của một đơn vị cụ thể.

Bạn có thể làm mới thông tin phụ thuộc bất kỳ lúc nào bằng cách nhấp vào nút làm mới trên thanh công cụ và bạn có thể sắp xếp danh sách tệp bằng cách nhấp vào tiêu đề cột.
alt text http://www.gexperts.org/tour/project%20dependencies.png


OTOH, bạn cũng có thể sử dụng miễn phí Peganza's ICARUS như một công cụ báo cáo chi tiết hơn, nhưng ít tương tác ...

1

Cách đơn giản nhất là để biên dịch chương trình và kiểm tra mà .dcu được tạo ra bởi trình biên dịch. Đảm bảo thiết lập trình biên dịch để tạo .dcu trong một thư mục riêng biệt, ví dụ: c:\dcu. Tôi đã tạo tiện ích đơn giản để tìm kiếm .pas cho mỗi tệp .dcu trong các thư mục nằm trong đường dẫn tìm kiếm của trình biên dịch (có thể đọc từ .cfg, .dof hoặc .bdsproject tệp).

25

Trình gỡ rối Delphi có thể hiển thị cho bạn các đơn vị nào được biên dịch thành một mô-đun (exe, dll hoặc gói). Bạn có thể thấy điều này trong giao diện Mô-đun (Xem | Gỡ lỗi Windows | Mô-đun). Nhấp vào một mô-đun ở khung bên trái phía trên và khung bên trái phía dưới sẽ hiển thị tất cả các đơn vị biên dịch được tích hợp vào mô-đun đó. Nếu một đơn vị biên dịch cụ thể được tạo thành từ nhiều tệp nguồn (tức là tệp .pas và tệp .inc), cũng sẽ được hiển thị (khi bạn mở rộng đơn vị comp).

Ngoài ra, bạn có thể có trình biên dịch Delphi hiển thị cho bạn danh sách .dcus được sử dụng bằng cách truyền --depends khi bạn biên dịch một dự án. Nó sẽ xuất ra một tệp .d với một danh sách .dcus (và .dcps) được yêu cầu.

+5

Đã học điều gì đó mới hôm nay: '--depends' :) Tôi luôn làm sạch thư mục .dcu, sau đó thực hiện một thư mục' dir/b' của thư mục .dcu sau khi biên dịch. Thủ thuật gỡ lỗi cũng gọn gàng! –

+1

Phiên bản nào của trình biên dịch biết về khóa chuyển đổi --depends? – dummzeuch

+0

Tôi luôn có thể sử dụng nhiều bộ não hơn :-) Cảm ơn câu trả lời tuyệt vời này. –

1

Bạn có thể sử dụng tệp MAP kết hợp với MapFileStats, điều này sẽ không chỉ cung cấp cho bạn tất cả các phụ thuộc của bạn, mà số lượng mã (và tài nguyên) mà chúng đóng góp trong tệp thực thi cuối cùng.

Có ích để phát hiện các đơn vị bạn có phụ thuộc, nhưng sử dụng ít, cũng như phát hiện các đơn vị "mỡ heo", lấy tất cả mọi thứ cộng với bồn rửa nhà bếp với chúng.

FWIW, giảm phụ thuộc và loại bỏ lợn không chỉ có lợi cho kích thước thực thi, nó còn có lợi khi xuống đường khi đến lúc nâng cấp lên phiên bản mới.

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