Wie kann ich sicherstellen, dass das System seine schriftart verwendet
Moderator: Moderatoren
- Eugeny Lutsenko
- Rekursionen-Architekt
- Beiträge: 108
- Registriert: Fr, 15. Mai 2020 16:16
- Wohnort: Russland, der südliche Föderale Bezirk, die Stadt Krasnodar
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Wie kann ich sicherstellen, dass das System seine schriftart verwendet
Wie kann ich sicherstellen, dass das System seine schriftart verwendet? Damit die Benutzeroberfläche auf jedem Computer mit einer beliebigen Windows-Version korrekt angezeigt wird?
- brandelh
- Foren-Moderator
- Beiträge: 15707
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 71 Mal
- Danksagung erhalten: 38 Mal
- Kontaktdaten:
Re: Wie kann ich sicherstellen, dass das System seine schriftart verwendet
Eine benutzen die alle Windowsversionen kennen, Arial z.B.
Gruß
Hubert
Hubert
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Wie kann ich sicherstellen, dass das System seine schriftart verwendet
Meines Wissens ist Tahoma die Standard-Schriftart.
Die Dialog-Klassen haben die Schriftart als Parameter dabei. Etwas schwierig wird das Ganze bei z.B. Combo-Bxen, da mehrere Elemente die Schrift mittragen (Titel, Eingabefeld, Liste, gewählte Liste). Aber man kann das programmtechnisch lösen. Du gibst eine vor und musst schauen, dass immer dieselbe verwendet wird.
Die Dialog-Klassen haben die Schriftart als Parameter dabei. Etwas schwierig wird das Ganze bei z.B. Combo-Bxen, da mehrere Elemente die Schrift mittragen (Titel, Eingabefeld, Liste, gewählte Liste). Aber man kann das programmtechnisch lösen. Du gibst eine vor und musst schauen, dass immer dieselbe verwendet wird.
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2832
- Registriert: Fr, 08. Feb 2008 21:29
- Hat sich bedankt: 98 Mal
- Danksagung erhalten: 13 Mal
Re: Wie kann ich sicherstellen, dass das System seine schriftart verwendet
Guten Morgen, Eugeny -
wenn Du einen XbpDialog() erstellst und KEIN XbpFont()-Objekt zuweist, verwendet der XbpDialog() und alle Childen die Standard-Schriftart des System. Dadurch ist sichergestellt, dass alle Xbase++-Programme der Systemdefinition folgen (look alike).
Wenn Du über :setFont() einen eigenen Font zuweist, wird dieser verwendet. Ausnahme: XbpMenu() und XbpMenuBar() lassen sich in Bezug auf die Schriftart nicht verändern.
Andernfalls formulieren Deine Frage bitte neu, vielleicht habe ich sie auch missverstanden.
wenn Du einen XbpDialog() erstellst und KEIN XbpFont()-Objekt zuweist, verwendet der XbpDialog() und alle Childen die Standard-Schriftart des System. Dadurch ist sichergestellt, dass alle Xbase++-Programme der Systemdefinition folgen (look alike).
Wenn Du über :setFont() einen eigenen Font zuweist, wird dieser verwendet. Ausnahme: XbpMenu() und XbpMenuBar() lassen sich in Bezug auf die Schriftart nicht verändern.
Andernfalls formulieren Deine Frage bitte neu, vielleicht habe ich sie auch missverstanden.
Liebe Grüsse aus der Eifel,
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Wie kann ich sicherstellen, dass das System seine schriftart verwendet
hi,
Eugeny meint einen Font unter verschiedenen Landes-Sprachen z.b. Kyrillisch oder Chinesisch.
das Problem : OEM <-> ANSI Konvertierung
Lösung : alles in ANSI
Problem No. 2 : DBF welche OEM sind und eine Codepage haben
Lösung : keine unter Xbase++
allgemein : weder OEM noch ANSI sind für eine Multi-Language App optimal. UNICODE ist die Lösung
Eugeny meint einen Font unter verschiedenen Landes-Sprachen z.b. Kyrillisch oder Chinesisch.
das Problem : OEM <-> ANSI Konvertierung
Lösung : alles in ANSI
Problem No. 2 : DBF welche OEM sind und eine Codepage haben
Lösung : keine unter Xbase++
allgemein : weder OEM noch ANSI sind für eine Multi-Language App optimal. UNICODE ist die Lösung
gruss by OHR
Jimmy
Jimmy
- Eugeny Lutsenko
- Rekursionen-Architekt
- Beiträge: 108
- Registriert: Fr, 15. Mai 2020 16:16
- Wohnort: Russland, der südliche Föderale Bezirk, die Stadt Krasnodar
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Re: Wie kann ich sicherstellen, dass das System seine schriftart verwendet
Das ist die Frage. Das Eidos-System wird nicht nur in Russland verwendet: http://aidos.byethost5.com/map5.php. um das Leben der Benutzer zu erleichtern, habe ich Mehrsprachige Unterstützung, indem Sie die Unterstützung für die Schnittstelle nicht nur Russisch, sondern auch 50. Manchmal funktioniert das jedoch unbefriedigend. Vor kurzem bat mich ein Benutzer aus Mazedonien, mit der intelligenten Bildverarbeitung aus dem Brustkorb von gesunden Menschen zu helfen und mit dem Virus infiziert 19. Es stellte sich heraus, dass es am bequemsten wäre, wenn die Schnittstelle auf Russisch funktionierte. Aber auf seinem Computer ist es nicht so einfach. Ich habe ihm mit Teamviewer geholfen.
- brandelh
- Foren-Moderator
- Beiträge: 15707
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 71 Mal
- Danksagung erhalten: 38 Mal
- Kontaktdaten:
Re: Wie kann ich sicherstellen, dass das System seine schriftart verwendet
aber nur in neueren Windows Versionen, die Frage war aber welche Schriftart ist auf jedem Windows vorhanden und das ist Arial.
Aber wie Jimmy schrieb ist das nur die halbe Miete. Russisch hat ja auch noch eine andere Art der Schrift,
selbst ähnliche Sprachen brauchen andere Buchstaben und die Länge des Strings wird dadurch immer sehr unterschiedlich sein.
Das macht die Sache nicht einfacher, hinzu kommen ja noch verschiedene Bild Zoom Einstellungen 100, 125, 150 etc. % wenn man das wirklich sauber unterstützen will,
muss man die Schriftlänge und Höhe berechnen und das Formular neu formatieren. Eine echte Herausforderung.
Bei der DBF würde ich beim Speichern das Format UTF-8 nutzen, dazu muss man die Feldlänge so vergrößern dass die Strings auf jeden Fall hinein passen,
oder FOXDBF Binärstrings verwenden. In der Programmoberfläche muss man sich dann nur noch um die lokale ANSI Anzeige kümmern, die UTF-8 Texte sind eindeutig (soweit ich das beurteilen kann)
Eine einfachere Lösung bietet sich dann an, wenn englisch als gemeinsame Oberfläche akzeptiert wird, das kommt mit 7 bit aus und sieht daher immer gleich aus.
Gruß
Hubert
Hubert
- Herbert
- Der Entwickler von "Deep Thought"
- Beiträge: 1991
- Registriert: Do, 14. Aug 2008 0:22
- Wohnort: Gmunden am Traunsee, Österreich
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Wie kann ich sicherstellen, dass das System seine schriftart verwendet
Hubert, Arial ist nur eine der Schriften.
https://www.autoitscript.com/autoit3/do ... /fonts.htm
Gemäss DesignGuide ist Segoe UI die empfohlene Schrift.
https://docs.microsoft.com/en-us/window ... typography
https://www.autoitscript.com/autoit3/do ... /fonts.htm
Gemäss DesignGuide ist Segoe UI die empfohlene Schrift.
https://docs.microsoft.com/en-us/window ... typography
Grüsse Herbert
Immer in Bewegung...
Immer in Bewegung...
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1931
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Wie kann ich sicherstellen, dass das System seine schriftart verwendet
es kommt auch darauf an, was du darstellen willst, sind es listen oder Tabellen? damit die Informationen unabhängig der Zeichenlänge gleich aussehen, wirst du mit Arial das nicht erreichen. Da nimmt du am besten courier New. da sehen alle Buchstaben gleich lang aus. denn ein W ist kleiner als ein I
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Wie kann ich sicherstellen, dass das System seine schriftart verwendet
hi,
ich "teste" den Header der DBF
bei OEM DBF steht bei Bit 29 ( oder 30) evtl. die Codepage
was unter Xbase++ fehlt ist die folgenden Möglichkeit
ich kann damit in einer Listbox die Codepage auswählen und bekomme damit die Nation Einstellungen für den Font.
es fehlt Xbase++ die Option
womit ich ausprobieren kann welche Einstellungen ich benötige für eine unbekannte DBF.
ich "teste" den Header der DBF
bei OEM DBF steht bei Bit 29 ( oder 30) evtl. die Codepage
Code: Alles auswählen
cTest := SUBSTR( cTxt, 30, 1 ) // 0-29 / 1-30
// look for Codepage
DO CASE
CASE cTest = CHR( 0x01 )
_CodePage := "DOS 437"
CASE cTest = CHR( 0x02 )
_CodePage := "DOS 850"
CASE cTest = CHR( 0x03 )
_CodePage := "WIN 1251"
CASE cTest = CHR( 0xC8 )
_CodePage := "WIN 1250"
CASE cTest = CHR( 0x64 )
_CodePage := "DOS 852"
CASE cTest = CHR( 0x65 )
_CodePage := "DOS 865"
CASE cTest = CHR( 0x66 )
_CodePage := "DOS 866"
OTHERWISE
_CodePage := STR( ASC( cTest ) )
// ??? mehr
ENDCASE
Code: Alles auswählen
STATIC PROCEDURE SelecLang( cPath, cDBF, cWorkArea, cBrowse )
LOCAL cCodepage
LOCAL cExt := SP_cInxExt()
LOCAL cVia
IF cExt = "NTX"
cVia := "DBFNTX"
ELSE
cVia := "DBFCDX"
ENDIF
cCodepage := WinCodePage()
IF !EMPTY( cCodepage )
CLOSE( cDBF )
USE (cPath+cDBF) VIA (cVia) EXCLUSIVE CODEPAGE (cCodepage)
Domethod( cBrowse, "BrowserView", "Refresh" )
ENDIF
RETURN
Code: Alles auswählen
STATIC FUNCTION WinCodePage()
LOCAL cRet := ""
LOCAL aLangName := { "Basque", ;
"Czech 852", ;
"Czech ISO-8859-2", ;
"Czech KAM", ;
"Catalan", ;
"English", ;
"French", ;
"Galician", ;
"German Ansi", ;
"German OEM", ;
"Hebrew 862", ;
"Hebrew 1255", ;
"Hungarian 852", ;
"Hungarian CWI-2", ;
"Hungarian WINDOWS-1", ;
"Italian", ;
"Polish 852", ;
"Polish ISO-8859-1", ;
"Polish Mozowia", ;
"Portuguese", ;
"Romanian", ;
"Russian WINDOWS-1", ;
"Serbian ISO-8859-2", ;
"Serbian 852", ;
"Spanish" }
LOCAL aLangID := { "EU", ;
"CS852", ;
"CSISO", ;
"CSKAM", ;
"CA", ;
"EN", ;
"FR", ;
"GL", ;
"DEWIN", ;
"DE850", ;
"HE862", ;
"HEWIN", ;
"HU852", ;
"HUCWI", ;
"HUWIN", ;
"IT", ;
"PL852", ;
"PLISO", ;
"PLMAZ", ;
"PT", ;
"RO", ;
"RUWIN", ;
"SRISO", ;
"SR852", ;
"ES" }
es fehlt Xbase++ die Option
Code: Alles auswählen
CODEPAGE (cCodepage)
gruss by OHR
Jimmy
Jimmy