Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   XE3: Direktive für String Typ? (https://www.delphipraxis.net/171647-xe3-direktive-fuer-string-typ.html)

greenmile 16. Nov 2012 17:05

XE3: Direktive für String Typ?
 
Hallo,

gibt es eigentlich eine Compiler Direktive, mit der ich den Typ vom String steuern kann? Ich möchte gerne für einige Units den guten alten AnsiString für "String" verwenden ...

Sir Rufo 16. Nov 2012 17:27

AW: XE3: Direktive für String Typ?
 
Delphi-Quellcode:
{$IFDEF unicode}

greenmile 16. Nov 2012 17:29

AW: XE3: Direktive für String Typ?
 
Schon klar, aber ich möchte sowas wie {$UNICODE-}, um alles nachfolgende als AnsiString zu betrachten.

himitsu 16. Nov 2012 17:32

AW: XE3: Direktive für String Typ?
 
Ja und Nein.

Aber das ist nur eine Kompatibilitätsfunktion für uralte Delphi1-Codes, also kannste das komplett vergessen.

Denn entweder String = UnicodeString (seit D2009) oder String = ShortString :lol:


PS: Sooooooviele Compilerdirektiven gibt es garnicht ... F1 kennst du?



Ach ja, ich bin froh, daß es sowas nicht gibt.
Stell dir mal vor überall wäre der selbe Typ ein Anderer.
Dann weiß doch keiner mehr was so wie ist.
z.B. ich kopiere mir eine EventMethode oder auch nur die Signatur von hier nach da und schon funktioniert nichts mehr.

Hätten alle damals schon AnsiString genommen, wo definitiv nur ANSI verlangt ist, dann gäbe es keine Probleme. :roll:
Und falls jetzt jemand meckert ... Lazarus hat mit seiner ANSI>UTF-8-Umstellung auch so seine Probleme.



Benenne String in AnsiString, Char in AnsiChar und PChar in PAnsiChar um und fertig, außerdem isses eindeutig.

greenmile 16. Nov 2012 17:42

AW: XE3: Direktive für String Typ?
 
F1? Ach dafür ist die Taste da? :-D

Natürlich kenne ich die Hilfe, aber da stand nirgendwo etwas von so einer Direktive was ja bei der QS von Embarcadero nicht zwangsläufig heißt, dass es das nicht gibt. Es ist gibt so einige Abwärtskompatibilitäts-Schalter und die gibt es sicherlich nicht ohne Grund ...

himitsu 16. Nov 2012 17:48

AW: XE3: Direktive für String Typ?
 
Wobei diese Compilerdirektiven relativ vollständig sind ... praktisch nur neuen RTTI-Direktiven vergessen die seit Jahren nachzutragen

greenmile 16. Nov 2012 17:51

AW: XE3: Direktive für String Typ?
 
Gut, fassen wir es kurz: Gibt es nicht.
Schade, dann hätte ich mir einigen Streß ersparen können bei Units, die ich schon ewig verwende und die plötzlich abstürzen.

himitsu 16. Nov 2012 18:07

AW: XE3: Direktive für String Typ?
 
Wobei es bei Vielen Dingen auch nicht unbedingt optimal ist, diese einfach auf ANSI festzusetzen, nur weil sie mit Unicode nicht funktionieren.
- entweder die sind definitiv ANSI
- oder sie sind defekt und gehören repariert


Man nehme z.B. mal die RTTI:
- diese ist praktisch immernoch ANSI, Aaaaaaaber, die Schnittstellen zum Programm wurden auf UTF-8 umgestellt, was ja in ANSI reinpaßt.
Somit konnter der Compiler und die RTTI-Funktionen unverändert bleiben und dennoch können sie so indirekt auch mit Unicode umgehn.

uligerhardt 16. Nov 2012 18:30

AW: XE3: Direktive für String Typ?
 
Zitat:

Zitat von himitsu (Beitrag 1191577)
Aber das ist nur eine Kompatibilitätsfunktion für uralte Delphi1-Codes, also kannste das komplett vergessen.

Denn entweder String = UnicodeString (seit D2009) oder String = ShortString :lol:

Du meinst vermutlich
Delphi-Quellcode:
$H
/
Delphi-Quellcode:
$LONGSTRINGS
. Dazu lese ich hier folgendes:
Zitat:

Note: The LONGSTRINGS directive is obsolete and is ignored by the compiler. Current Delphi compilers use a long string type based on Unicode characters (UnicodeString). It is recommended that you use the default string type (UnicodeString). If you want to use the older string type, explicitly use the ShortString or string[<number>] types where needed.
Hab's aber nicht ausprobiert.:angel2:

himitsu 16. Nov 2012 18:55

AW: XE3: Direktive für String Typ?
 
Ohh, dann haben'se es wohl rausgeworfen, aber wie gesagt, das wäre eh keine Lösung gewesen ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:08 Uhr.
Seite 1 von 2  1 2      

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