AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

GB18030 darstellen ?

Ein Thema von myicq · begonnen am 5. Jan 2016 · letzter Beitrag vom 5. Jan 2016
Antwort Antwort
myicq

Registriert seit: 5. Jan 2016
70 Beiträge
 
Delphi 6 Professional
 
#1

GB18030 darstellen ?

  Alt 5. Jan 2016, 09:30
Delphi-Version: 6
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:
       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;
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.

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 ?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.192 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: GB18030 darstellen ?

  Alt 5. Jan 2016, 09:55
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.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.016 Beiträge
 
Delphi 12 Athens
 
#3

AW: GB18030 darstellen ?

  Alt 5. Jan 2016, 11:19
Leider gibt is in D6 keine UnicodeSupport. Das Projekt is sehr groß, und eine Umstellung auf TNTTools zu umfangreich (jetzt).
Du könntest es eventuell mal damit versuchen http://www.delphipraxis.net/141895-t...phi-other.html

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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 5. Jan 2016 um 11:27 Uhr)
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#4

AW: GB18030 darstellen ?

  Alt 5. Jan 2016, 11:33
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.)
Gruß, Jo
  Mit Zitat antworten Zitat
myicq

Registriert seit: 5. Jan 2016
70 Beiträge
 
Delphi 6 Professional
 
#5

AW: GB18030 darstellen ?

  Alt 5. Jan 2016, 11:39
Ich will absolut TNTTools, aber leider
  1. Das Projekt ist sehr Groß, und deshalb sehr aufwendig zu tun
  2. Meine Qualifikation mit Delphi reicht warscheinlich nicht aus

Danke trotzdem für Rückmeldungen
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#6

AW: GB18030 darstellen ?

  Alt 5. Jan 2016, 11:46
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.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.192 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: GB18030 darstellen ?

  Alt 5. Jan 2016, 11:51
Ich will absolut TNTTools, aber leider
  1. Das Projekt ist sehr Groß, und deshalb sehr aufwendig zu tun
  2. Meine Qualifikation mit Delphi reicht warscheinlich nicht aus

Danke trotzdem für Rückmeldungen
Da hilft nur
* 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.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:48 Uhr.
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