Hallo allerseits,
melde mich nach langer Zeit wieder zurück, da ich trotz Pense wieder werken muss.
Habe foldendes Problem.
Muss in ein Textprogramm als ersten Schritt List & Label einbauen.
Hat an und für sich funktioniert.
Mein Problem ist jedoch, dass im Textmodus ( LINK mist STACK... ) die slowenischen Zeichen
mit Hilfe der Codpage 852 tadellos angezeigt werden.
Ja aber beim LINK mit PM ist das alles futsch.
Das Problem ist ja glaub ich nach wie vor aktuell, dass CodePage 852 von Xbase (Version 1.19)
nicht unterstützt wird.
Frage daher, hat jemand eine Lösung oder wenns hilft und es funkt mit 1.20 steigen wir auch um.
Danke im voraus und schöne Grüsse aus Wien
Paul
CodePage 852
Moderator: Moderatoren
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
Re: CodePage 852
hi,
eine VIO App ist OEM aber bei einer GUI App (/PM:PM) wird OEM aus der Datenbank automatisch nach ANSI bei der Ausgabe konvertiert da Windows ANSI erwartet.
die Codepage hängt mit dem Font zusammen aber die OEM Codepage ist nicht das selbe in ANSI.
wenn du auf GUI gehst solltest du es zunächst ohne L & L versuchen z.b. Anzeige im XbpBrowse()
wenn deine App mit verschiedenen Sprachen arbeiten soll würde ich es mit UniCode Fonts versuchen und für jede Sprache einen Font-Satz verwenden.
eine VIO App ist OEM aber bei einer GUI App (/PM:PM) wird OEM aus der Datenbank automatisch nach ANSI bei der Ausgabe konvertiert da Windows ANSI erwartet.
die Codepage hängt mit dem Font zusammen aber die OEM Codepage ist nicht das selbe in ANSI.
wenn du auf GUI gehst solltest du es zunächst ohne L & L versuchen z.b. Anzeige im XbpBrowse()
wenn deine App mit verschiedenen Sprachen arbeiten soll würde ich es mit UniCode Fonts versuchen und für jede Sprache einen Font-Satz verwenden.
gruss by OHR
Jimmy
Jimmy
Re: Unicode
Hallo Jimmy,
danke erstmals, brauch aber auch betreff Unicode ein wenig Hilfe.
1 Frage: hab ich Unicode auf meinem PC (Win7 und 2.PC Win10) ?
Wenn nein wo krieg ichs
2.Frage: wie aktiviere ich es?
local oFont := xbpFont():new()
oFont:familyName := ?
oFont:codepage := ?
oFont:create()
Danke im Voraus
LG Paul
danke erstmals, brauch aber auch betreff Unicode ein wenig Hilfe.
1 Frage: hab ich Unicode auf meinem PC (Win7 und 2.PC Win10) ?
Wenn nein wo krieg ichs
2.Frage: wie aktiviere ich es?
local oFont := xbpFont():new()
oFont:familyName := ?
oFont:codepage := ?
oFont:create()
Danke im Voraus
LG Paul
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
Re: Unicode
Frage : "was" wird "wo" falsch angezeigt ... in deiner Xbase++ App oder in L & L
wenn du mit L & L arbeiten willst und es im VIO Mode klappt aber nicht im GUI Modus dann ist die Konvertierung OEM <-> ANSI nicht richtig. das Automatische konvertieren OEM <-> ANSI funktioniert aber nur innerhalb des Xbase++ Code aber NICHT bei Übergabe an 3-PP.
Windows erwartet ANSI oder eben Unicode was keine Sache von Fonts ist das nur für die "Darstellung" sorgt.
unter OEM wird das Euro Zeichen, mit Alaska CRT, als CHR (128) dargestellt aber unter GUI findest du es bei (vielen) Font unter CHR(213). Der Bereich > CHR(128) ist also unter GUI der Bereich für "Sonderzeichen" was du testen musst.
nun gibt es ConvToAnsiCP() / ConvToOemCP() womit man die Daten an L & L übergeben könnte ...
ausprobieren ob es mit den slowenischen Zeichen funktioniert. (chinesische Zeichen gehen so nicht ... )
---
ad 2.) am besten mit XbpFontDialog() "ausprobieren" bis es klappt und dann die Werte übernehmen.
wenn du mit L & L arbeiten willst und es im VIO Mode klappt aber nicht im GUI Modus dann ist die Konvertierung OEM <-> ANSI nicht richtig. das Automatische konvertieren OEM <-> ANSI funktioniert aber nur innerhalb des Xbase++ Code aber NICHT bei Übergabe an 3-PP.
Windows erwartet ANSI oder eben Unicode was keine Sache von Fonts ist das nur für die "Darstellung" sorgt.
unter OEM wird das Euro Zeichen, mit Alaska CRT, als CHR (128) dargestellt aber unter GUI findest du es bei (vielen) Font unter CHR(213). Der Bereich > CHR(128) ist also unter GUI der Bereich für "Sonderzeichen" was du testen musst.
nun gibt es ConvToAnsiCP() / ConvToOemCP() womit man die Daten an L & L übergeben könnte ...
ausprobieren ob es mit den slowenischen Zeichen funktioniert. (chinesische Zeichen gehen so nicht ... )
---
ad 1.) Nein, Office (ArialUni.TTF)
ad 2.) am besten mit XbpFontDialog() "ausprobieren" bis es klappt und dann die Werte übernehmen.
gruss by OHR
Jimmy
Jimmy
- brandelh
- Foren-Moderator
- Beiträge: 15696
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: CodePage 852
Natürlich ist UNICODE (in den Schriften) enthalten und Windows 7 läuft intern definitiv mit Unicode ! Auch ohne Office.
Auch die Controls sind standardmäßig für beide Zeichensätze tauglich, nur Xbase++ kann eben nur die ANSI Teile nutzen.
Auch die Controls sind standardmäßig für beide Zeichensätze tauglich, nur Xbase++ kann eben nur die ANSI Teile nutzen.
Gruß
Hubert
Hubert
Re: CodePage 852
Danke mal,
aber wie soll ich jetzt weiter machen.
ich rufe zwar das font "Arial Unicode MS" über ofont := Xbpfont():new() auf
und stelle als familyname Arial Unicode MS rein.
tut sich aber nix
ich lese so viel im Forum über Unicode, hab aber noch nicht kapiert, wie ich es umsetzten kann,
bzw. die Zeichen zu tauschen.
Andere Frage:
Gibt es eine Möglichkeit, ein eigenes font zu erstellen, in dem ich zB. Arial auf Arial meins kopiere,
und die entsprechenden Zeichen ersetze?
Wenn es diese Möglichkeit gibt, womit kann ich dies machen?
Dies wäre meiner Meinung der einfachste Weg, um generell das Problem zu lösen.
Man müsste halt dann sich auf ein paar Fonts beschränken (zB Courier und Arial).
LG Paul
aber wie soll ich jetzt weiter machen.
ich rufe zwar das font "Arial Unicode MS" über ofont := Xbpfont():new() auf
und stelle als familyname Arial Unicode MS rein.
tut sich aber nix
ich lese so viel im Forum über Unicode, hab aber noch nicht kapiert, wie ich es umsetzten kann,
bzw. die Zeichen zu tauschen.
Andere Frage:
Gibt es eine Möglichkeit, ein eigenes font zu erstellen, in dem ich zB. Arial auf Arial meins kopiere,
und die entsprechenden Zeichen ersetze?
Wenn es diese Möglichkeit gibt, womit kann ich dies machen?
Dies wäre meiner Meinung der einfachste Weg, um generell das Problem zu lösen.
Man müsste halt dann sich auf ein paar Fonts beschränken (zB Courier und Arial).
LG Paul
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
Re: CodePage 852
hi Paul
du fixierst dich auf den Font ... aber der kommt erst "am Ende".
wie schon gesagt findet bei der Umstellung VIO -> GUI intern eine OEM -> ANSI Konvertierung statt.
du solltest also erst mal zusehen ob du deine Zeichen unter GUI richtig angezeigt werden z.b. mit XbpStatic()
wie ich es mit dem Euro Zeichen versuchte zu erklären ist es NICHT möglich mit CHR(128) von ANSI Font (die Windows hat)
vielmehr muss man dann im Source Code CHR(213) verwenden ... keine Ahnung wie es bei slowenischen Zeichen ist.
---
meiner chinesischen OEM Zeichen nutzen DBCS (2 Byte), deshalb nutze ich UniCode.
wenn ich das unter chinesischen OS() nutzen (neu erfasse) schreibt er mir OEM in die DBF
unter deutschem OS() kann ich die Zeichen dann zwar anzeigen aber NICHT neu erfassen.
unter deutschem OS() kann man ja Umlaute verwenden/abspeichern.
Das geht nun wiederum NICHT auf dem chinesischen OS()
---
Es gibt Font Editoren wo man seine eigenen Fonts definieren kann.
wie ich aber versuche zu erklären ist das nicht der Weg der zum Ziel führt
du fixierst dich auf den Font ... aber der kommt erst "am Ende".
wie schon gesagt findet bei der Umstellung VIO -> GUI intern eine OEM -> ANSI Konvertierung statt.
du solltest also erst mal zusehen ob du deine Zeichen unter GUI richtig angezeigt werden z.b. mit XbpStatic()
wie ich es mit dem Euro Zeichen versuchte zu erklären ist es NICHT möglich mit CHR(128) von ANSI Font (die Windows hat)
vielmehr muss man dann im Source Code CHR(213) verwenden ... keine Ahnung wie es bei slowenischen Zeichen ist.
---
meiner chinesischen OEM Zeichen nutzen DBCS (2 Byte), deshalb nutze ich UniCode.
wenn ich das unter chinesischen OS() nutzen (neu erfasse) schreibt er mir OEM in die DBF
unter deutschem OS() kann ich die Zeichen dann zwar anzeigen aber NICHT neu erfassen.
unter deutschem OS() kann man ja Umlaute verwenden/abspeichern.
Das geht nun wiederum NICHT auf dem chinesischen OS()
---
Es gibt Font Editoren wo man seine eigenen Fonts definieren kann.
wie ich aber versuche zu erklären ist das nicht der Weg der zum Ziel führt
gruss by OHR
Jimmy
Jimmy