Tôi đang cố gắng sửa lỗi another VCL bug; lần này là Vcl.Printers.pas
.Vcl.Printers.pas (888): W1025 Tính năng ngôn ngữ không được hỗ trợ: 'thuộc tính tùy chỉnh'
Hiện tại chúng tôi đang thực hiện việc này bằng cách sao chép các tệp nguồn VCL lỗi tới một thư mục khác trong đường dẫn thư viện Delphi và áp dụng các bản sửa lỗi cho các tệp đó. Chúng tôi đã áp dụng bản sửa lỗi cho TPrinter.SetPrinter
.
Nhưng có sáu phương pháp trong các tập tin đó được trang trí với các thuộc tính:
[PrintingPermission(SecurityAction.LinkDemand, Level=PrintingPermissionLevel.AllPrinting)]
procedure TPrinter.Abort;
begin
...
[PrintingPermission(SecurityAction.LinkDemand, Level=PrintingPermissionLevel.AllPrinting)]
procedure TPrinter.EndDoc;
begin
...
[PrintingPermission(SecurityAction.LinkDemand, Level=PrintingPermissionLevel.AllPrinting)]
procedure TPrinter.NewPage;
begin
...
[PrintingPermission(SecurityAction.LinkDemand, Level=PrintingPermissionLevel.AllPrinting)]
{$IF DEFINED(CLR)}
procedure TPrinter.SetPrinter(ADevice, ADriver, APort: string; ADeviceMode: IntPtr);
{$ELSE}
procedure TPrinter.SetPrinter(ADevice, ADriver, APort: PChar; ADeviceMode: THandle);
{$ENDIF}
var
...
[PrintingPermission(SecurityAction.LinkDemand, Level=PrintingPermissionLevel.AllPrinting)]
function SetPrinter(NewPrinter: TPrinter): TPrinter;
begin
...
Mỗi phương pháp gây ra một cảnh báo:
- [Cảnh báo dcc32] Vcl.Printers.pas (968): W1025 tính năng ngôn ngữ được hỗ trợ: 'tùy chỉnh thuộc tính'
- [dcc32 Cảnh báo] Vcl.Printers.pas (978): W1025 Tính năng ngôn ngữ không được hỗ trợ: 'thuộc tính tùy chỉnh'
- [Cảnh báo dcc32] Vcl. Printers.pas (1015): W1025 tính năng ngôn ngữ được hỗ trợ: 'tùy chỉnh thuộc tính'
- [Cảnh báo dcc32] Vcl.Printers.pas (1026): W1025 tính năng ngôn ngữ được hỗ trợ: 'thuộc tính tùy chỉnh'
- [Cảnh báo dcc32] Vcl. Printers.pas (1080): W1025 tính năng ngôn ngữ được hỗ trợ: 'tùy chỉnh thuộc tính'
- [Cảnh báo dcc32] Vcl.Printers.pas (1599): W1025 tính năng ngôn ngữ được hỗ trợ: 'tùy chỉnh thuộc tính'
tôi có thể chỉ loại bỏ các thuộc tính. Hoặc có lẽ có một cách để ngăn chặn các cảnh báo. Nhưng tôi cho rằng các thuộc tính được thêm vào bởi Embarcadero có một số mục đích.
- cách để làm cho ngôn ngữ hỗ trợ tính năng tùy chỉnh các thuộc tính là gì?
- Tại sao nó không phải là cảnh báo trong nguồn VCL?
- Tại sao nguồn VCL được phép sử dụng khi tôi không?
- Các thuộc tính này hoạt động như thế nào?
- Ai đọc những thông tin này?
- Có vấn đề với việc xóa chúng không?
- Nếu không có vấn đề gì với việc xóa chúng, tại sao chúng lại ở đó?
Tôi thực sự hỏi:
Làm thế nào để tôi làm cho nó hoạt động?
Nhưng tôi cũng rất muốn biết:
Tại sao nó không làm việc?
Và tại sao làm cho nó một câu hỏi nhiều hữu ích hơn, nhưng sửa chữa nó sẽ là tốt.
Bonus nhí
Yes, chúng tôi cuối cùng đã có kế hoạch để suy nghĩ về khả năng điều tra việc sử dụng các detours. Mặc dù có lẽ phương pháp đường vòng vẫn nên có thuộc tính (nếu không thì tại sao thuộc tính tồn tại?)
+1 câu hỏi hay, tôi chưa bao giờ thực sự nghĩ về những cảnh báo này cho đến bây giờ, cảm ơn –
Btw, điều này có nghĩa là chúng tôi đang ở cuối câu hỏi D5 của bạn? !! Nếu vậy, sau đó tôi thấy bản thân mình đáng ngạc nhiên buồn bã .... ;-) –
@DavidHeffernan Bốn tuần vào cố gắng để có được phần mềm để chạy trong XE6. Không đảm bảo rằng chúng tôi sẽ không quay trở lại! –