2013-01-24 8 views
8

Tôi đang sử dụng tính năng Tài liệu Insight để ghi lại thư viện Delphi, hiện tại nó hoạt động tốt với Delphi 2005 đến XE3. Bây giờ tôi muốn thêm hỗ trợ cho các phiên bản cũ của Delphi (5, 6, 7) quá.Làm thế nào tôi có thể biên dịch mã Delphi tài liệu trong các phiên bản Delphi cũ hơn (<2005)

Nhưng khi cố gắng để biên dịch mã như thế này trong các phiên bản Delphi nhỏ hơn 2005 (Delphi 5, 6, 7)

{$REGION 'Documentation'} 
/// <summary> 
///  This is a sample text  
/// </summary> 
{$ENDREGION} 
TFoo=class 
    procedure Tick; 
end; 

tôi nhận được một lỗi biên dịch

không hợp lệ Compiler Chỉ KHU VỰC

Điều gì là tốt vì từ dành riêng REGION được giới thiệu khi IDE Delphi được thay đổi thành Galileo (Delphi 2005).

Vì vậy, bây giờ là giải pháp thay thế, tôi đang sử dụng cú pháp này để biên dịch mã trong Delphi 5 - thành XE3.

{$IFDEF NODEF}{$REGION 'Documentation'}{$ENDIF} 
/// <summary> 
///  This is a sample text  
/// </summary> 
{$IFDEF NODEF}{$ENDREGION}{$ENDIF} 
TFoo=class 
    procedure Tick; 
end; 

Nhưng bây giờ sử dụng mã như vậy Tài liệu chi tiết không còn hoạt động trong Delphi XE2 và XE3 nữa.

Vì vậy, câu hỏi là, Làm thế nào tôi có thể biên dịch tài liệu Delphi mã trong phiên bản cũ của Delphi mà không ảnh hưởng đến tài liệu Insight trong phiên bản Delphi mới hơn?

Trả lời

7

Nếu bạn loại bỏ các thẻ {$REGION}, Tài liệu Insight vẫn hoạt động và các phiên bản cũ hơn sẽ coi tài liệu là nhận xét bình thường. Bạn sẽ không thể thu gọn tài liệu được nữa trong các phiên bản IDE hỗ trợ việc xếp mã, chỉ vậy thôi.

5

Nếu bạn phải có một cơ sở mã biên dịch mà không có thay đổi trong Delphi cũ và mới, giải pháp này sẽ không hoạt động.

Thật xấu xí và phải được hoàn thành và hoàn tác khi bạn di chuyển qua lại từ phiên bản cũ hơn của Delphi sang phiên bản mới hơn.

Nhưng, bạn có thể grep toàn bộ dự án của bạn qua lại.

Khi đi từ XE2 đến D7, ví dụ, bạn muốn chuyển đổi này

{$REGION 'Documentation'} 

bằng cách chèn một không gian và loại bỏ các dấu} để nó trông như thế này:

{ $REGION 'Documumentation' 

Và đi từ D7 để XE2 bạn muốn làm điều ngược lại thêm một} vào cuối mỗi dòng bắt đầu với

{$ REGION 

và xóa không gian sau $.

Như tôi đã nói, rất xấu.

+1

+1 cho mẹo thông minh. –

+3

Ngoài ra, bạn có thể chèn dấu chấm trước '$' và để nguyên niềng răng còn nguyên vẹn, chuyển các thẻ thành các chú thích khép kín: '{. $ REGION 'Documentation'}' '{. $ ENDREGION}'. Tài liệu Insight sẽ vẫn hoạt động. –

0

Tài liệu Cái nhìn sâu sắc hỗ trợ một số kiểu vùng được tích hợp sẵn (xem hộp thoại Tùy chọn). Bạn có thể chọn Kiểu tương thích và nó sẽ tự động tạo ra các chỉ thị như {$ IFDEF NoDEF} {$ REGION 'xxx'} {$ ENDIF}.

+0

Làm thế nào tôi nói về câu hỏi của tôi, khi tôi sử dụng '{$ IFDEF NODEF} {$ REGION 'Tài liệu'} {$ ENDIF}' Tài liệu Cái nhìn sâu sắc không còn hoạt động trong Delphi XE2 và XE3. – RRUZ