![]() |
ConvertToUtf32
Hallo,
ich bin am Aufräumen von altem Code und wollte mal Warnungen vermeiden. Da hatte ich z.B. das: [dcc32 Warning] ... W1000 Symbol 'IsSurrogate' is deprecated: 'Use TCharHelper' Ok, ich schreibe statt "IsSurrogate(C)" dann eben C.IsSurrogate Dann das: [dcc32 Warning] ... W1000 Symbol 'ConvertToUtf32' is deprecated: 'Use TCharHelper' Da habe ich "UC := ConvertToUtf32(C, C2);" Wie schreibt man das dann richtig? Das einzgste was funktioniert ist das: UC := C.ConvertToUtf32(C, C2); Es geht nicht: UC := TCharHelper.ConvertToUtf32(C, C2); Er benutzt dann das: class function ConvertToUtf32(const HighSurrogate, LowSurrogate: Char): UCS4Char; overload; static; Muss ich um die Methode zu verwenden eine Instanz (C) angeben obwohl die (Self) dann gar nicht verwendet wird? Das ist doch "Bockmist". Oder ist das wirklich so gedacht? |
AW: ConvertToUtf32
Die ConvertToUtf32-Funktionen sind class functions.
Die kannst du wie folgt anwenden:
Delphi-Quellcode:
Siehe auch:
program Project1;
{$APPTYPE CONSOLE} {$R *.res} uses System.Character; var MyChar1, MyChar2: Char; MyUCS4Char: UCS4Char; begin // IsSurrogate(MyChar); MyChar1.IsSurrogate; // MyUCS4Char := ConvertToUtf32(MyChar1, MyChar2); MyUCS4Char := Char.ConvertToUtf32(MyChar1, MyChar2); end.
Delphi-Quellcode:
type
TCharHelper = record helper for Char private class procedure RaiseCheckStringRangeException(Index, LowIndex, MaxIndex: Integer); static; public const MaxHighSurrogate = #$DBFF; MaxLowSurrogate = #$DFFF; MaxSurrogate = #$DFFF; MinHighSurrogate = #$D800; MinLowSurrogate = #$DC00; MinSurrogate = #$D800; class function MaxCodePoint: Integer; static; class function UnicodeDataVersion: string; static; class function ConvertFromUtf32(C: UCS4Char): string; static; class function ConvertToUtf32(const S: string; Index: Integer): UCS4Char; overload; inline; static; class function ConvertToUtf32(const S: string; Index: Integer; out CharLength: Integer): UCS4Char; overload; static; class function ConvertToUtf32(const HighSurrogate, LowSurrogate: Char): UCS4Char; overload; static; ... |
AW: ConvertToUtf32
Wenn ich schreibe "UC := Char.ConvertToUtf32(C, C2);" dann kommt
"[dcc32 Error] ... E2018 Record, object or class type required" Nachtrag: Ah habs - "Char" war bei mir etwas anderes. Mit WideChar geht es. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz