Thema: Delphi GB18030 darstellen ?

Einzelnen Beitrag anzeigen

myicq

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

GB18030 darstellen ?

  Alt 5. Jan 2016, 08: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