Hi Ich habe mal eine Frage zur Ausgabe von Unicode.
Vielleicht kann mir das jemand beantworten.
Also ich habe eine kleine multisprachen Anwendung geschrieben mit dem Multilizer. Nun wollte ich einen String ausgeben aber der soll gezeichnet werden.
Siehe Beispiel:
with btn1.Canvas do
begin
BitBlt(Handle, 0, 0, Width, Height, Bitmap32List1.Bitmap[1].Handle, 0, 0, SRCCOPY);
SetBkMode(Handle, TRANSPARENT);
Font.Color := RGB(110,140,185);
//Font.Style := [fsBold];
Font.Name := 'Tahoma';
if (m_Product = '0') then
begin
//TextOut( 58, 16, szButton1_T1);
getmem(PWideChar2, 512);
StringToWideChar(szButton1_T1, PWideChar2, 512);
TextOutW(Handle,58,16, PWideChar2, length(PWideChar2));
freemem(PWideChar2);
end
else begin
//TextOut( 58, 16, szButton1_T2);
getmem(PWideChar2, 512);
StringToWideChar(szButton1_T2, PWideChar2, 512);
TextOutW(Handle,58,16, PWideChar2, length(PWideChar2));
freemem(PWideChar2);
end;
SetBkMode(Handle, OPAQUE);
end;
Das Programm funktioniert perfekt auf einem deutschen XP mit Chinesischen Traditional (Code 1028) Schriftzeichen.
Wenn ich das Programm aber auf einem native Chinesisch Traditional System starte werden andere Zeichen angezeigt.
Gebe ich den String in eine Label Feld aus ist es richtig.
In meiner Grafiktextausgabe sind aber Junk Characters.
Woran liegt das?
Ist das ein OS Problem?
Vielleicht kann mir das jemand beantworten.
Also ich habe eine kleine multisprachen Anwendung geschrieben mit dem Multilizer. Nun wollte ich einen String ausgeben aber der soll gezeichnet werden.
Siehe Beispiel:
with btn1.Canvas do
begin
BitBlt(Handle, 0, 0, Width, Height, Bitmap32List1.Bitmap[1].Handle, 0, 0, SRCCOPY);
SetBkMode(Handle, TRANSPARENT);
Font.Color := RGB(110,140,185);
//Font.Style := [fsBold];
Font.Name := 'Tahoma';
if (m_Product = '0') then
begin
//TextOut( 58, 16, szButton1_T1);
getmem(PWideChar2, 512);
StringToWideChar(szButton1_T1, PWideChar2, 512);
TextOutW(Handle,58,16, PWideChar2, length(PWideChar2));
freemem(PWideChar2);
end
else begin
//TextOut( 58, 16, szButton1_T2);
getmem(PWideChar2, 512);
StringToWideChar(szButton1_T2, PWideChar2, 512);
TextOutW(Handle,58,16, PWideChar2, length(PWideChar2));
freemem(PWideChar2);
end;
SetBkMode(Handle, OPAQUE);
end;
Das Programm funktioniert perfekt auf einem deutschen XP mit Chinesischen Traditional (Code 1028) Schriftzeichen.
Wenn ich das Programm aber auf einem native Chinesisch Traditional System starte werden andere Zeichen angezeigt.
Gebe ich den String in eine Label Feld aus ist es richtig.
In meiner Grafiktextausgabe sind aber Junk Characters.
Woran liegt das?
Ist das ein OS Problem?
Comment