![]() |
VCL Unicode, AnsiString übergeben!
Hallo Zusammen...
Nachdem ich jetzt meine Software auf XE2 umgestellt habe, habe ich an vielen Stellen chinesische Schriftzeichen.... Das Problem liegt warscheinlich hier:
Delphi-Quellcode:
Wie unterdrücke ich beim Typcasten eine interpreation der Zeichen im String?
procedure TCustomMaskEditOwn.SetEditText(const Value: Ansistring);
begin if GetEditText <> Value then begin SetTextBuf(PChar(Value)); // <--- CheckCursor; end; end; SetTextBuff erwartet nunmal eine PChar! Mavarik :coder: |
AW: VCL Unicode, AnsiString übergeben!
Ändere deine Methodensignatur auf String.
|
AW: VCL Unicode, AnsiString übergeben!
PChar = PAnsiChar bei Delphi < 2009, danach PWideChar. Wenn Du also einen AnsiString verwendest muss es dann wohl explizit PAnsiChar sein.
[edit] Oder besser so wie Bernhard sagt, auf jeden Fall nicht die Typen mischen. [/edit] |
AW: VCL Unicode, AnsiString übergeben!
Zitat:
Ich habe intern doch "nur" AnsiString.. Nur wenn ich mit der VCL "reden" will muss ich die ja an irgend einer Stelle mal von AnsiString an WideString zuweisen! Mavarik |
AW: VCL Unicode, AnsiString übergeben!
Oder den String in eine temporäre Variable vom Type String, bzw. bei Übergabe doppelt casten.
Delphi-Quellcode:
.
SetTextBuf(PChar(String(Value)));
Oder du stellst deinen Code auf Unicode um. :stupid: Wenn du außerhalb einen AnsiString oder einen PAnsiChar an eine String/UnicodeString-Variable, bzw. an soeinen Parameter übergibst, dann konvertiert Delphi das automatisch. Zitat:
Delphi sollte dir genau sagen, daß es dort ein Problem gibt. (es müßte eine Compiler-Warnung vorhanden sein) |
AW: VCL Unicode, AnsiString übergeben!
Zitat:
Einen AnsiString->Unicodestring "bestraft" dich der Compiler nur mit einer Compilerwarnung (Evtl. Datenverlust), aber Wandlung macht er korrekt. Bei P(Wide/Ansi)Char's kann er das nicht. Da müsstest du selbst mit Hilfsvariablen + 1-2 Codezeilen umschiffen. |
AW: VCL Unicode, AnsiString übergeben!
Zitat:
Warnings... ja :oops: noch 17900! Ich denke ich gebe es mal auf.... Mavarik |
AW: VCL Unicode, AnsiString übergeben!
17.900???? :shock:
Ach herrje.. Alles von der Unicode-Umstellung? Jeden Tag 1000, dann biste in knapp drei Wochen durch :D |
AW: VCL Unicode, AnsiString übergeben!
War ich wohl schneller mit Editieren, als du mit dem Lesen :mrgreen:
Joar, bei uns in der Software gibt es auch noch gefühlte 2 Milliarden Warnungen, angefangen von nichtinitialisierten Variablen und Results, bis hin zu ein paar dieser Unicodewarnungen (bin auch schon fleißig am entfernen ... im FinalBuilder muß man manchmal ganz schön suchen, bis man den Fehler zwischen den unzähligen Warungen und Hinweisen findet ... das nervt etwas :? ) |
AW: VCL Unicode, AnsiString übergeben!
Zitat:
Das beseitigen einer Warnung zieht eine "Rattenschwanz" von Änderungen von Proc zu Proc nach sich... Ach ja 64Bit kann ich überhaupt nicht compilieren... Da hagelt es nur Interne-Fehlermeldungen vom Compiler... Aber das ist eine andere Geschichte... *heul* 4 Wochen Arbeit... Ergebinss: Besser lassen! Delphi 6 ist doch sehr schön... Mavarik |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:58 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