2010-01-27 20 views
6

Gần đây, chúng tôi đã chuyển đổi dự án Delphi chạy dài sang Open Source. Nhiều người đã đóng góp các bản vá lỗi, điều này thật tuyệt vời, nhưng không may là các biểu mẫu và khung khi được lưu với Delphi 2006 (và sau này) chứa các thuộc tính mới trong tệp .dfm không được xử lý bởi các phiên bản cũ hơn. Các form được xử lý khá tốt bởi IDE ("ignore propery?"), Nhưng các frame được nạp vào thời gian chạy và dẫn đến lỗi. Không phải là một lựa chọn, theo như tôi quan tâm.Làm thế nào để giữ các biểu mẫu và khung có thể biên dịch trong Delphi 6 - 2007?

Bây giờ tôi đã xóa các thuộc tính đó khỏi tệp .dmf bằng tay, nhưng tôi thực sự tự hỏi liệu có giải pháp thanh lịch hơn hay không. Không có cách nào để lưu ở định dạng tương thích ngược từ IDE mới, phải không? Có các công cụ hiện có để loại bỏ các thuộc tính không được hỗ trợ khỏi tệp .dfm không? Bất kỳ giải pháp thanh lịch khác mà tôi đang thiếu?

Thông thường, với một dự án thương mại, tôi chỉ muốn nâng cấp dự án lên phiên bản mới nhất có thể áp dụng ... nhưng vì đây là nguồn mở tôi thực sự không muốn bỏ qua những nhà phát triển đó vẫn đang làm việc trên Delphi 7 Điều đó bao gồm bản thân tôi, thực sự.

Trả lời

11

Dự án JEDI JVCL sử dụng một chút dc.exe tiện ích (delphi sạch) và một danh sách các tài sản trong DFMs mà không có mặt trong phiên bản cũ của delphi, mỏ chứa các văn bản sau đây:

*.PopupMode 
*.PopupParent 
*.ExplicitLeft 
*.ExplicitTop 
*.ExplicitWidth 
*.ExplicitHeight 
*.BevelKind 
*.BufferDocument 
*.DoubleBuffered 
*.ParentDoubleBuffered 
*.DisableHyperlinks 
*.AlwaysEnquoteFloats 
*.PixelsPerInch 

tôi chạy tiện ích dc.exe này từ một tập tin thực thi mà làm sạch dfms của tôi trước khi tôi cam kết thay đổi để lật đổ. Cú pháp trong tập tin batch của tôi cho điều này là:

dc.exe -s -fd10.txt *.dfm -i 

Bạn có thể lấy công cụ của tôi tại địa chỉ:

http://sites.google.com/site/warrenpostma/files 
+0

Bạn nhập waaay quá nhanh. Tôi đã gần như tất cả các cách thông qua việc đăng thông tin tương tự; Bạn đánh bại tôi vào nó. –

3

Vâng, vì lợi ích của sự hoàn chỉnh:

Mở dfms trong Delphi lâu đời nhất được hỗ trợ , hãy để nó loại bỏ tất cả các thuộc tính không xác định, thay đổi một thuộc tính và lưu lại.

Vì mục đích của bạn, giải pháp của Warren là tốt hơn, nhưng nó có thể là một giải pháp. Tôi đã làm nó một lúc khi chúng tôi là dual D7-D2006ing.

+0

+1 vì mục đích hoàn thành :-) –

4

Bạn có thể thử số DFMCheck của Andy. Nó có thể tự động mở và đóng tất cả các biểu mẫu và khung trong một dự án, làm cho IDE loại bỏ các thuộc tính không xác định (như Marco wrote).

+0

Rất tốt - Tôi không biết về điều này. Cảm ơn. –

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