Sonderzeichen ?

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
hbr
Beiträge: 321
Registriert: Mi 20. Feb 2013, 10:30
OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
CPU-Target: 32/64,ARM(RPi)

Sonderzeichen ?

Beitrag von hbr »

Hallo Forum.

Folgendes Problem tritt auf!

Ich habe in den verschiedensten Komponenten, z.B mit Alt+Numbock (16,17 etc.) Zeichen in meinen Text (Beschreibung, Datenbankkopf etc. tEdit usw.) eingefügt.
Das ganze unter Windows7 kompiliert.

Es wird alles unter Win7/Vista exakt dargestellt.

Wird das Programm aber in XP gestartet, sind an den besagten Stellen nur Kästchen zu sehen.

Was kann man machen, damit die Zeichen auch in XP erscheinen?

OK, XP ist bald tot, aber trotzdem wäre eine Lösung nicht schlecht.
Wer kann mir hier weiter helfen?

Gruß

Soner
Beiträge: 726
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: Sonderzeichen ?

Beitrag von Soner »

Ich benutze öfters Alt+0183 (Mittelpunkt ·) als Trennzeichen. Deine Zeichen werden unter Win7/Vista korrekt dargestellt, weil diese Systeme die gleichen Schriftart verwenden. MS hat mit Vista angefangen ein neues Schriftart zu verwenden.
Du darfst nicht Zeichen verwenden die nur in von dir ausgewählten Schriftarten vorhanden sind und du musst Zeichen verwenden, die in Unicode-Zeichensatz vorhanden sind und somit bei allen Schriftarten vorhanden sind. Du kannst mit dem Pogramm Zeichentabelle kontrollieren ob von dir verwendeten Zeichen auch bei anderen Schriftarten vorhanden sind.

hbr
Beiträge: 321
Registriert: Mi 20. Feb 2013, 10:30
OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
CPU-Target: 32/64,ARM(RPi)

Re: Sonderzeichen ?

Beitrag von hbr »

Hallo Soner,
Soner hat geschrieben:Ich benutze öfters Alt+0183 (Mittelpunkt ·) als Trennzeichen. Deine Zeichen werden unter Win7/Vista korrekt dargestellt, weil diese Systeme die gleichen Schriftart verwenden. MS hat mit Vista angefangen ein neues Schriftart zu verwenden.
Du darfst nicht Zeichen verwenden die nur in von dir ausgewählten Schriftarten vorhanden sind und du musst Zeichen verwenden, die in Unicode-Zeichensatz vorhanden sind und somit bei allen Schriftarten vorhanden sind. Du kannst mit dem Pogramm Zeichentabelle kontrollieren ob von dir verwendeten Zeichen auch bei anderen Schriftarten vorhanden sind.
Danke für Deine Info,

Also in XP sowie in Vista-> ist z. B. das männliche Zeichen ♂ = U+2642 vorhanden und in beiden Systemen mit Alt+11 Darstellbar.
bei der Eingabe von Alt+2642 bekommt man ein "R".
Wie kommt man da jetzt weiter?

Gruß

Soner
Beiträge: 726
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: Sonderzeichen ?

Beitrag von Soner »

Versuchmal mit Alt+9794. Im Program Zeichensatz dargestellte U+NNNN-Werte sind Hexadezimal.
$2642=9794.
Ich kann in Word direkt Alt+9794 tippen dann erscheint auch männliche Zeichen, bei Lazarus, Firefox und Notepad erscheint immer 'B'. Aber wenn ich im Zeichensatz-Programm das Zeichen wähle, kopiere und in anderen Programmen einfüge, dann erscheint es auch in den Programmen sofern richtige Zeichensatz vorhanden ist.
Bei Lazaurs-Komponenten muss man richtige Schriftart wählen, ansonsten erscheinen sie nicht. Bei default-Schrift erscheinen sie nicht aber z.B. bei Arial werden richtige Zeichendargestellt.
Wenn man im Word Tahoma verwendet und Alt+9794 tippt dann wechselt Word Schriftart automatisch zu Arial.
Bei WindowsXp wird meistens wie bei mir Tahoma-Schriftart verwendet und Tahoma hat diese Zeichen nicht. Dein Zeichen ist zu Speziell.
Als Lösung kannst du beim Formularerstellen Schriftart von Komponenten ändern wenn das Progamm unter WindowsXP läuft.

Edit:
Gilt auch für Delphi, kein Lazarus bzw. LCL spezifisches Problem. Getestet mit Delphi 7+ TNT-Unicode-Controls.

Benutzeravatar
theo
Beiträge: 10873
Registriert: Mo 11. Sep 2006, 19:01

Re: Sonderzeichen ?

Beitrag von theo »

Soner hat geschrieben: Bei Lazaurs-Komponenten muss man richtige Schriftart wählen, ansonsten erscheinen sie nicht.
Stimmt fast, bzw. auf Windows.
GTK auf Linux stellt die Font Substitution von Haus aus zur Verfügung, sodass automatisch der Font gewechselt wird, falls ein Glyph im gewählten Font nicht darstellbar ist.

Soner
Beiträge: 726
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: Sonderzeichen ?

Beitrag von Soner »

theo hat geschrieben: Stimmt fast, bzw. auf Windows.
GTK auf Linux stellt die Font Substitution von Haus aus zur Verfügung, sodass automatisch der Font gewechselt wird, falls ein Glyph im gewählten Font nicht darstellbar ist.
Danke für die Info. Ich hatte mir gefragt wie das mit LInux ist.

Damit es für alle deutlich wird, wenn ich Default-Schriftart von Lazaruskomponenten sage, dann meine ich die Schrifart, die von Windows für Steuerelemente verwendet wird. Mann kanns ändern in [Systemsteuerung > Anzeige > Darstellung ]. Hat mit Lazarus nicht zu tun.

hbr
Beiträge: 321
Registriert: Mi 20. Feb 2013, 10:30
OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
CPU-Target: 32/64,ARM(RPi)

Re: Sonderzeichen ?

Beitrag von hbr »

Danke nochmals,

hat Funktioniert mit anderen Schriftarten,
setze jetzt wie vorgeschlagen bei XP die Schrift auf "Arial".

Gruß

Antworten