Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: faArchive, faSysFile is specific to a platform

  Alt 19. Feb 2016, 10:32
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.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (19. Feb 2016 um 10:34 Uhr)
  Mit Zitat antworten Zitat