Blöd ist es überhaupt nicht.
Es gibt so einige Dinge, die man im Code veranstalten kann, die aber unter bestimmten Umständen ein seltsames oder anderes Verhalten an den Tag legen.
Delphi-Quellcode:
var
aStr: AnsiString;
uStr: UnicodeString;
aStr := uStr; // <- Warnung
Will ich diese Warnung wegbekommen, dann schreibt man
Delphi-Quellcode:
var
aStr: AnsiString;
uStr: UnicodeString;
aStr := AnsiString( uStr ); // <- keine Warnung
Jetzt sollte ich dem Compiler damit
nicht gesagt haben
Zitat:
LMAA
sondern
Zitat:
Ich bin mir völlig bewusst, dass es zu einem Datenverlust kommen könnte, aber ich kann gewährleisten, dass es nicht dazu kommt (alle Zeichen sind auch mit
ANSI darstellbar), bzw. der Datenverlust ist hier unerheblich und wird die Funktion des Programms nicht beeinflussen.
Mit den FileAttributes verhält sich das genauso - nur muss man hier eben an der entsprechenden Codestelle die Warnung ab- und direkt danach wieder einschalten. In der Regel wird man das dann so implementieren
Delphi-Quellcode:
{$IFDEF MSWINDOWS}
{$WARN SYMBOL_PLATFORM OFF}
// Jetzt die entsprechenden Attribute verwenden
{$WARN SYMBOL_PLATFORM ON}
{$ELSE}
raise ENotImplementedException.Create( 'Das soll wer anders machen :o)' );
{$ENDIF}
Dadurch dokumentiert man, dass man sich mit der Plattform Windows auseinander gesetzt hat. Alle anderen Plattformen sind nicht berücksichtigt und müssten (wenn die dort verwendet werden sollen) nochmal genau geprüft werden.