Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Problem mit griechischen Buchstaben (https://www.delphipraxis.net/214884-problem-mit-griechischen-buchstaben.html)

Gelmo 29. Mär 2024 11:55

Problem mit griechischen Buchstaben
 
Hallo zusammen!
In einem Memo und einigen Labels wollte ich griechische Buchstaben / Winkelbezeichnungen einfügen. Nach kurzer Recherche fand ich heraus, dass durch Eingabe von [Alt]+945 ein Alpha in UTF-8 geschrieben würde. Im Memo funktioniert das auch, aber wenn ich ins Caption eines Labels oder in einen String ein Alpha einfügen möchte, erhalte ich nur ein grafisches Zeichen, ähnlich einem Teppich: ▒. Ich meinte, dass UTF-8 der gängige Zeichensatz von Delphi ist.
Danke für eure Unterstützung
MfG Gelmo

Papaschlumpf73 29. Mär 2024 12:49

AW: Problem mit griechischen Buchstaben
 
Zunächst ist UTF-8 kein Zeichensatz, sondern nur eine Methode Unicode-Zeichen zu kodieren. Dabei brauchen häufig verwendete Zeichen wie a, b, c jeweils nur 1 Byte und eher seltener benötigte Zeichen wie das Alpha mehrere Bytes. Im Gegensatz zu unserem Standard-UnicodeString in Delphi, der für jedes Zeichen 2 Byte benötigt.

Ob eine Anwendung bei Alt+945 das Zeichen erzeugt oder nicht, liegt immer beim Entwickler. Wenn du in Delphi das Zeichen in einem Label oder sonst wo benutzen willst, kannst du es entweder über die Zwischenablage reinkopieren oder mit chr(945) erzeugen.

Also z.B. so hier:
Delphi-Quellcode:
Label1.Caption:='abc '+chr(945)+' efg';

Gelmo 29. Mär 2024 17:20

AW: Problem mit griechischen Buchstaben
 
Vielen Dank für die Hilfe. Mit Chr(...) klappt es. Mich würde jedoch interessieren, in welchem Umfang das so klappt. Anders gesagt: Wie kann ich die unzähligen Codeseiten von Unicode 16 (!) ansprechen. Hängt das dann immer vom Zeichensatz (Arial, Rockwell, Times New Roman ...) ab?
MfG Gelmo

jaenicke 29. Mär 2024 17:43

AW: Problem mit griechischen Buchstaben
 
Der Zeichencode sagt, welches Zeichen du meinst, in diesem Fall im Zeichensatz Unicode UTF-16, den Delphi verwendet. Die Schriftart, die du als Zeichensatz bezeichnet hast, sagt, wie das Zeichen in dieser Schriftart aussieht.

himitsu 29. Mär 2024 17:46

AW: Problem mit griechischen Buchstaben
 
Da Delphi seit 2009 grundsätzlich UTF-16 für RTL/VCL/FMX benutzt und normal ANSI oder UTF-8 für Dateien, kann es somit auch praktisch alles darstellen, also alles, was im aktuellen Font eine Zeichen dafür enthält, oder in einem der Ersatz-Fonts.

[Win] C h a r m a p [Enter] und z.B. im Segoe UI nach 03B1 suchen (das Hexadezimale von 945)


Delphi-Quellcode:
Label1.Caption:='abc '#945' '#42531#$A623' efg';

oder
Delphi-Quellcode:
Label1.Caption:='abc α ꘣꘣ efg';
, wobei Delphi dich dann beim Speichern fragen wird, ob es die Unit dann als UTF-8 speichern soll, falls sie noch Ansi ist.

TurboMagic 30. Mär 2024 07:20

AW: Problem mit griechischen Buchstaben
 
Ja, kann man machen aber Jaenicke hat recht: das dazustellende Zeichen muss auch in
der benutzten Schriftart enthalten sein. SOnst wird ein Platzhalter angezeigt.

Redeemer 30. Mär 2024 20:54

AW: Problem mit griechischen Buchstaben
 
Wichtig ist, aus welcher Delphi-Version das Programm ist. Wenn aus Delphi vor 2009, dann gilt der in der Systemsteuerung eingestellte Zeichensatz, normalerweise 1252. TRichEdit ist immer Unicode-fähig, falls du das mit Memo meinst.
Mit Alt-Codes ohne führende 0 kannst du diverse Zeichen aus 850 eingeben, die in 1252 nicht enthalten sind. Griechische Buchstaben sind nicht in 850 darunter. In der älteren 437 unter DOS waren einige enthalten: álfa, víta (im Zusammenhang mit 437 meist Eszett genannt), Gháma, pi, Sígma, sígma, my (offiziell als Mikro-Zeichen bezeichnet), taf, Fi, Thíta, Omégha, dhélta, fi und épsilon.

Zitat:

Zitat von TurboMagic (Beitrag 1535111)
Ja, kann man machen aber Jaenicke hat recht: das dazustellende Zeichen muss auch in
der benutzten Schriftart enthalten sein. SOnst wird ein Platzhalter angezeigt.

Blödsinn! Schon seit Windows Vista muss die benutzte Schriftart das Zeichen nicht enthalten.

TurboMagic 1. Apr 2024 10:50

AW: Problem mit griechischen Buchstaben
 
Hallo,

danke für die Interessante Info, dass das Zeichen nicht in der Schriftart sein muss.
Das bedeutet dann aber, dass Windows für solche Zeichen irgendwie eine andere Schriftart
benutzen muss, denn das Aussehen kann ja auch Windows nicht erraten.

Die frage wäre dann, welche Schriftart dafür benutzt wird bzw. nach welchem Algorithmus
diese ausgewählt wird.

Grüße
TurboMagic

himitsu 1. Apr 2024 16:56

AW: Problem mit griechischen Buchstaben
 
In Windows sind Ersatzschriftarten registriert ... ich vergesse nur immer wo und wie sich das eigentlich nennt, damit ich da nicht suchen und verlinken kann.

Dalai 1. Apr 2024 23:42

AW: Problem mit griechischen Buchstaben
 
Das nennt sich Font Substitution.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:06 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz