Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Sets durchlaufen (https://www.delphipraxis.net/150627-sets-durchlaufen.html)

RSE 22. Apr 2010 13:21

Re: Sets durchlaufen
 
Also ist ein Record als Property auch nicht zu gebrauchen... Ich bau mir doch ´ne Klasse, damit kenn ich mich aus, da gibt´s keine bösen Überraschungen...

Zitat:

Zitat von himitsu
['a', 'ß', '0'] bleibt unter Delphi 2009/2010 ein AnsiCharSet

Und wenn man da nun Chars reinpackt, die im Ansi nicht drin sind? Meckert der Compiler? Oder ist der Quelltext weiter in Ansi codiert, so dass man auf diese Weise gar nix anderes erzeugen könnte? Was wäre, wenn ich mich richtig bemühe und sowas wie [#13, #56, #3423] schreibe (angenommen, dass man mit #3423 ein WideChar-Zeichen beschreiben kann).

himitsu 22. Apr 2010 13:29

Re: Sets durchlaufen
 
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.

RSE 22. Apr 2010 13:59

Re: Sets durchlaufen
 
Also gibt es auch weiterhin nur Set of AnsiChar. Danke für den Test!


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:55 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz