![]() |
Delphi-Version: 6
GB18030 darstellen ?
Hallo Alle,
zuerst: Deutsch ist nicht meine Muttersprache. ich habe mehr oder weniger eine Legacy Project übernommen, geschrieben in Delphi6. Eine graphishe Applikation, was Weltweit verwendet wird. Leider gibt is in D6 keine UnicodeSupport. Das Projekt is sehr groß, und eine Umstellung auf TNTTools zu umfangreich (jetzt). Jetzt habe ich die Frage erhalten: wie gebe ich GB18030 ein ? Heute sind die Charsets von Delphi schon definiert und können zugewiesen werden: Hier die Code dazu:
Delphi-Quellcode:
Leider kann ich dabei NICHT die GB18030 eingeben bzw Anwählen. GB18030 ist in Windows die CodePage 54936, und ist eine ANSI-Standard sowie GB2312.
procedure TChildLerred.SetCharset(charset: Integer);
var i: Integer; tf: TFont; lf: TLogFont; {....} tf:=TFont.Create; try tf.Assign(TVariable(ObjListe[i]).fFont); GetObject(tf.Handle, sizeof(lf), @lf); // Charset zB GB2312_CHARSET = 134 // oder SHIFTJIS_CHARSET = 128 lf.lfCharset:=TVariable(ObjListe[i]).fCharset; tf.Handle:=CreateFontIndirect(lf); TVariable(ObjListe[i]).fFont.Assign(tf); finally tf.Free; end; Grund für mein Wunsch mit GB18030 zu arbeiten: die GB2312 kann nicht alles darstellen. Also Kurz: wie kann ich, wenn überhaupt, mit Codepages in Delphi6 umgehen ? |
AW: GB18030 darstellen ?
Lass es mit Codepage zu arbeiten. Es wird nur eine unvollständige Frickellösung werden.
Wir selbst haben mit D6 unsere Anwendung praktisch vollständig Unicde-Fähig gemacht da zum umstellzeitpunkt 2002 es keine Unicode-VCL gab. In 2016 würde ich einfach eine Delphi-Version >= 2009 nehmen und mir hiermit einen Großteil der Arbeit abnehmen lassen. |
AW: GB18030 darstellen ?
Zitat:
![]() z.B. cnPack oder GExperts bieten Funktionen zum Tauschen von Komponenten, womit man nicht jede Komponente einzeln auf der Form manuell austauschen müsste. Aber ansonsten würde ich mich meinem Vorredner anschließen. |
AW: GB18030 darstellen ?
TNT will er ja nicht, oder?
Für mich läuft aber die Frage letztlich darauf hinaus, wie kann ich Multibyte Charsets verwenden ohne ein Multibyte fähiges (Entwicklungs-)System einzusetzen. Das kann nicht gehen. (Außer man bastelt eine komplette Eigenlösung, die allerdings noch um ein Vielfaches aufwendiger sein dürfte als die Umstellung auf TNT Komponenten.) |
AW: GB18030 darstellen ?
Ich will absolut TNTTools, aber leider
Danke trotzdem für Rückmeldungen ;) |
AW: GB18030 darstellen ?
Gerade wenn es so groß ist, sollte es kein Problem sein, eine aktuelle Delphiversion dafür einzusetzen.
Die Kosten für die Anschaffung betragen jenachdem weniger als einen Monatslohn. Auch wenn es eine günstige Möglichkeit ist, TNT einzusetzen, Du hast erheblichen Aufwand, wahrscheinlich mehr als mit einer aktuellen Version und arbeitest dennoch mit Software von vorgestern. Sollte später auf eine aktuelle Delphiversion gewechselt werden, muss TNT wieder ausgebaut werden. |
AW: GB18030 darstellen ?
Zitat:
* Zeit einplanen * Fortbildung, Evtl. weiteren Entwickler einstellen wenn es wirklich groß ist. * Update auf neue IDE-Version. Wie schon gesagt. Ab D2009 gibt es vollen Unicodesupport. Jetzt noch irgendwas einzubauen ist vergebliche Liebesmühe. Die TNTs werden auch nicht mehr weiterentwickelt und der letzte freie Stand wurde von TMS gekauft. Lieber gleich auf neue IDE-Version setzen um nicht jetzt was zu ändern was du in 1-2 Jahren wieder ausbauen musst das du dann eine neue IDE-Version verwendest. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:23 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