![]() |
Migrations-Probleme -> UniCode
Hallo Zusammen...
Als XE erschienen ist... Natürlich nach den Delphi Tagen sofort gekauft... Mit ENTSETZEN festgestellt, dass es {$H-} nicht mehr gibt und ein Char nicht mehr ein Char ist. (Bitte keine Kommentare dazu ;-) Also XE wieder weggelegt und entschieden - 2,5 Mio Zeilen Source... No way... -- Story zu Ende --- { Dachte ich } Als XE2 erschienen ist...Natürlich nach den Delphi Tagen sofort gekauft... Mit ENTSETZEN festgestellt... Ach ne hatten wir ja schon mal... OK Also doch mal durchbeißen... Kann ja nicht so schwierig sein... Global Renamer programmiert... Char -> AnsiChar... Tja leider funktioniert das so nicht, denn alle abgeleiteten Funktionen aus der VCL wollen kein AnsiChar, sondern ein Char! Und jetzt? Erstmal Wochenende... Vielleicht habe ich nächste Woche neuen Mut. Wie habt Ihr das gemacht? Nur neue Programme mit XE(2) schreiben? Beispiel: Keypress(Key:Char); Was kommt den in dem Char an bei Unicode? Und wie mache ich korrekte Typenumwandlung für die interne Verarbeitung die auf AnsiChar aufbaut? Hat jemand vielleicht einen "Leitfaden"? Grüsse Mavarik :coder: |
AW: Migrations-Probleme -> UniCode
Zitat:
Vorher wurden die Windows auch als ANSI erstellt (weswegen die TNTs es nicht so einfach hatten hier "einfach" Unicode reinzubringen, da man zwar die UnicodeAPIs nutzten könnte, aber dennoch die Fesnter mit ANSI arbeiten). Für einige ANSI-Funktionen gibt z.B. die Unit AnsiStrings. Bei einer Umwandlung: - wenn es nur auf ASCII ankommt, dann einfach die Chars direkt casten - ansonsten üben den Char konvertieren |
AW: Migrations-Probleme -> UniCode
Zitat:
|
AW: Migrations-Probleme -> UniCode
Dennoch arbeiten die Messages mit ANSI, wenn das Window ala ANSI erstellt wurde.
Du bekommst also keinen Unicodetext in ein Edit, wenn dieses nicht als Unicode erstellt wurde. Zitat:
|
AW: Migrations-Probleme -> UniCode
Zitat:
Code:
Der Clou ist laut TNT Doku, dass bei den SendMessageA Aufrufen der VCL an ein Unicode Fenster Windows automatisch die Ansi/Unicode Konvertierung übernimmt.
To add Unicode support to a TWinControl descendant, override CreateWindowHandle() and call CreateUnicodeHandle()
In TntControls.pas wird das Verfahren beschrieben, liest sich fast wie ein kleiner Roman :) |
AW: Migrations-Probleme -> UniCode
Zitat:
Also etweder programmiert Ihr anders oder ich weis es nicht. @himitsu Danke, von Dir gibt es eigentlich immer - zu allen Themen ein gute Antwort. Neues Beispiel... Nehmt Euch mal nen DOS-Editor... Tippt eine keines "ü" chr(129) in die Datei. Wenn Ihr diese Datei ins aktuelle Delphi ladet ist das "ü" einfach weg. Nutzt den keiner von Euch mehr Sourcecode aus der Pre-Windows Area? Ihr müsst doch auf die gleichen Probleme stoßen Grüsse Mavarik :coder: |
AW: Migrations-Probleme -> UniCode
Zitat:
Zitat:
|
AW: Migrations-Probleme -> UniCode
Zitat:
Zitat:
Grundsätzlich versuche ich, alle Programme immer mit der aktuellen Delphi-Version zu bearbeiten. Nur in seltenen Fällen bin ich gezwungen, eine bestimmte Delphi-Version zu verwenden (aber auch da nerve ich ständig). Natürlich gibt es immer ein gewisses Zeitfenster für die Umstellung z.B. jetzt bei XE2 wegen der Fremdkomponenten. Alles in allem habe ich aber sehr gute Erfahrungen mit dieser Vorgehensweise gemacht. Der Änderungsaufwand ist in den meisten Fällen nur minimal. |
AW: Migrations-Probleme -> UniCode
Zitat:
Dadurch hatte man nach der Umstellung zwar diverse überflüssige Konvertierungen zwischen Ansi und Unicode. Aber das meiste lief sofort. |
AW: Migrations-Probleme -> UniCode
Zitat:
Aber hunderttausende Zeilen Source sind immer noch in Benutzung und zwar bis jetzt unverändert. (War auch bisher nicht nötig) Mavarik |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:42 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