Per Standard sind die Units
Ansi, aber man kann es umstellen
und falls Delphi beim Speichern Zeichen entdeckt, welche nicht in
Ansi reinpassen, dann warnt es und fragt ob es das umstellen soll.
(wird dann meißt als UTF-8 kodiert)
Delphi-Quellcode:
var x: Set of Char;
begin
x := ['a', '猇'];
// ^^^ Delphi weiß, daß es ein SET ist und macht 'a' somit zum AnsiChar
if 'a' in x then ;
// ^^^ hier ist 'a' allerdings per Standard ein WideChar und darum wird gemeckert
// Delphi erfährt erst nach dem IN, daß dort ein SET kommt und kan darum das 'a' nicht anders behandeln
end;
Zitat:
[DCC Warnung] Unit3.pas(28): W1050 WideChar in Set-Ausdrücken auf ByteChar verkürzt. Ziehen Sie die Verwendung der Funktion 'CharInSet' aus der
Unit 'SysUtils' in Betracht.
[DCC Warnung] Unit3.pas(30): W1061 Bei Umwandlung der angegebenen WideChar-Konstante (#$7307) in AnsiChar gehen Informationen verloren
[DCC Warnung] Unit3.pas(31): W1050 WideChar in Set-Ausdrücken auf ByteChar verkürzt. Ziehen Sie die Verwendung der Funktion 'CharInSet' aus der
Unit 'SysUtils' in Betracht.