![]() |
QuickReport drucken von polnischen Zeichen
Hallo!
Hat jemand Erfahrung mit QuickReport und polnischen Zeichen? Es ist ja ein anderer Zeichensatz. Wie kann ich ihm das beibringen, dass er die Zeichen richtig druckt. Beispiel, es gibt ja das durchgestrichene " ł ". Übergebe ich das so in der Property, macht er im Ausdruck ein normales " l " draus. Kann er das nicht, ob muss man irgendwo noch was einstellen, andere Schriftart, o.ä.? Vielen schon mal vorab! Gruß, Stephan |
AW: QuickReport drucken von polnischen Zeichen
Update auf D2009 und neuer und das Problem hat sich erledigt.
|
AW: QuickReport drucken von polnischen Zeichen
Tja, ich habe D2007 und ich kann nicht so einfach updaten. Gibt es nicht eine Lösung für ältere Versionen?
|
AW: QuickReport drucken von polnischen Zeichen
Zeichensatz
![]() Geht sowas?
Delphi-Quellcode:
Quickreport.Font.Charset := EASTEUROPE_CHARSET;
![]() |
AW: QuickReport drucken von polnischen Zeichen
Das war ein gutes Hinweis! Jetzt funktioniert es!
Delphi-Quellcode:
Vielen Dank!
:
: QRLabel15.Font.Charset := BALTIC_CHARSET; : : procedure TDruckLieferscheinNeu.QRLabel15Print(sender: TObject; var Value: string); begin If Lk = 'PL' Then Value := 'Kwota '+Chr($F9)+Chr($E0)+'czna PLN'; // Kwota łączna PLN end; Gruß, Stephan |
AW: QuickReport drucken von polnischen Zeichen
Wenn Windows oder zumindestens die Delphi-IDE und der Compiler mit der "passenden" CodePage laufen, dann könntest du auch direkt abeiten,
Delphi-Quellcode:
Value := 'Kwota łączna PLN';
so wie es seit Delphi 2009 durchgängig funktioniert, wenn die PAS als Unicode (z.B. UTF-8) gespeichert wird.
Delphi-Quellcode:
Value := 'Kwota '#$F9#$E0'czna PLN';
#zzz #$xx #$00xx // mathematisch macht es keinen Unterschid, aber für den Compiler schon Chr($xx) Char($xx) WideChar($xx) Bei AnsiChars und UnicodeChars im Code mußt du auch aufpassen wie und ob der Compiler da CodePages beachtet und womöglich übersetzt. z.B. #$0085 und #$85 in einem UnicodeString sind nicht das Selbe, denn einmal wird es als UnicodeChar betrachtet und 1:1 übernommen, während es anderseits also ANSI angesehn und convertiert würde. Einiges wird im Editor übersetzt (hier egal, wenn du dort nur mit ASCII arbeitest und Chars nur Ordinal [INT oder HEX] deklarierst), anderes wird bereits vom Compiler behandelt/convertiert, also auf deinem PC, und zuletzt kann es auch erst zur Laufzeit behandelt/convertiert werden, also auf dem Zielrechner. Das betrifft auch deinen aktuellen Quellcode, falls du doch irgendwann mal auf ein neues Delphi umsteigst, denn das was jetzt noch ANSI mit entsprechender Codepage darstellt, könnte später etwas Anderes sein. (Chr/Char = AnsiChar bis D2007, aber später wird es WideChar) ![]() ![]() Seit 2009 wird auch zur Laufzeit in der AnsiString-Variable die CodePage gespeichert und für Convertierungen verwendet. Davor wird ausschließlich der Typ der Variable und nicht der aktuelle Inhalt dafür genutzt. Den Grundtyp kann man bei der Deklaration angeben und teilweise auch später nochmal ändern. ![]()
Delphi-Quellcode:
type
CZString = AnsiString(1250); var S: CZString; S := 'Kwota '#$F9#$E0'czna PLN'; Der Vorteil beim Unicode ist, dass man sich nicht mehr so extrem mit CodePages auseinandersetzen muß, wo jede Variable/Komponente mit einer anderen CodePage arbeiten könnte. |
AW: QuickReport drucken von polnischen Zeichen
Zitat:
(2 Mrd. Quellcodezeilen bei den angenommen wird das 1 Char = 1 Byte ist? Oder einfach gar noch nicht versucht? Zitat:
Gehe davon aus das diese Wissen wegen mangelnder Notwendigkeit immer weniger Vorhanden sein wird. Und die Zeit die du in Workarounds (die mal funktionieren und mal nicht) investierst, könntest du schon ein Delphi mit Generics, 64-Bit Compiler, ... haben. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:04 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 by Thomas Breitkreuz