Vcl.Printers.pas (888): W1025 Nicht unterstützte Sprachfunktion: 'benutzerdefiniertes Attribut'

Ich versuche zu beheben ein anderer VCL-Fehler; diesmal inVcl.Printers.pas.

Wir tun dies jetzt, indem wir die fehlerhaften VCL-Quelldateien in einen anderen Ordner im Delphi-Bibliothekspfad kopieren und Korrekturen auf diese Dateien anwenden. Wir haben die Korrektur auf @ angewendeTPrinter.SetPrinter.

Aber es gibt sechs Methoden in der Datei, die mit Attributen verziert sind:

[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
   ...

Jede dieser Methoden verursacht eine Warnung:

[dcc32 Warnung] Vcl.Printers.pas (968): W1025 Nicht unterstützte Sprachfunktion: 'Benutzerdefiniertes Attribut' [dcc32 Warnung] Vcl.Printers.pas (978): W1025 Nicht unterstützte Sprachfunktion: 'Benutzerdefiniertes Attribut' [dcc32 Warnung] Vcl.Printers.pas (1015): W1025 Nicht unterstützte Sprachfunktion: 'Benutzerdefiniertes Attribut' [dcc32 Warnung] Vcl.Printers.pas (1026): W1025 Nicht unterstützte Sprachfunktion: 'Benutzerdefiniertes Attribut' [dcc32 Warnung] Vcl.Printers.pas (1080): W1025 Nicht unterstützte Sprachfunktion: 'Benutzerdefiniertes Attribut' [dcc32 Warnung] Vcl.Printers.pas (1599): W1025 Nicht unterstützte Sprachfunktion: 'Benutzerdefiniertes Attribut'

Ich konnte nur die Attribute entfernen. Oder vermutlich gibt es eine Möglichkeit, die Warnungen zu unterdrücken. Aber ich gehe davon aus, dass von Embarcadero hinzugefügte Attribute einen bestimmten Zweck haben.

Was ist der Weg, um die Sprache zu machenUnterstützun das Merkmalcustom attributes?Warum handelt es sich nicht um eine Warnung in der VCL-Quelle?Warum darf die VCL-Quelle sie verwenden, wenn ich es nicht bin?Was machen diese Attribute?er liest diese Attribut Gibt es Probleme beim Entfernen?Wenn es keine Probleme beim Entfernen gibt, warum gibt es sie dann?

Ich frage wirklich:

Wie bringe ich es zum Laufen?

Aber ich würde auch gerne wissen:

Warum funktioniert es nicht?

Und derWaru macht es eine viel nützlichere Frage, aber dierepariere e wäre gut

Bonus Chatter

J, wir planen schließlich, über die Möglichkeit nachzudenken, die Verwendung von @ zu untersuche umwege. Obwohl vermutlich die umgeleitete Methode immer noch das Attribut haben sollte (ansonsten warum würde das Attribut existieren?)

Antworten auf die Frage(1)

Ihre Antwort auf die Frage