Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   ASCII unter #32 darstellen (https://www.delphipraxis.net/159177-ascii-unter-32-darstellen.html)

iphi 17. Mär 2011 09:27

ASCII unter #32 darstellen
 
Hallo,

ich möchte einen Haken, das ASCII-Zeichen #4 in einem TLabel darstellen.
Bei mir funktioniert das auch, aber auf dem Rechner eines Freundes in Kalifornien erscheint dieses Zeichen und auch alle anderen unter #32 als Rechteck. Wie kann ich dieses Zeichen (#4) auf allen Rechnern korrekt darstellen?

Bernhard Geyer 17. Mär 2011 09:31

AW: ASCII unter #32 darstellen
 
#4 = END OF TRNASMISSION.

Das ist keine Zeichen zum darstellen! Und je nach verwendeten Font (du müsstest also sicher sein das dein Font auch beim Kunden ist) kommt hier irgendein Zeichne oder ein Rechteck als "Platzhalter" wenn nicht im Font definiert ist.

Was willst du eigentlich erreichen bzw. Ausdrücken mit diesem Steuerzeichen?

himitsu 17. Mär 2011 09:45

AW: ASCII unter #32 darstellen
 
Der betreffende Font muß dafür auch ein Zeichen zur Verfügung stellen.
Aber in fast allen Fonts gibt es für diese Zeichen keine Darstellung.
PS: Auch das Rechteck ist ein Zeichen des Fonts ... das Ersatzzeichen, welches Windows nutzt, wenn das entsprechende Zeichen im Font nicht existiert.

Offizielle Lösungen:
- du übernimmst das Zeichnen selber
- du konvertierst diese Zeichen in andere Zeichen, welche das Label und der ausgewählte Font darstellen können

Offiziell gibt es es im UnicodeStandard spezielle Zeichen, welche nur für die Darstellung dieser Steuerzeichen vorgesehn sind:
http://www.unicode.org/charts/PDF/U2400.pdf
Du bräuchtest also nur bei den Zeichen #0 bis #31 (oder auch #32) jeweils die Zeichencodes um $2400 erhöhen (addieren),
aber auch hier sind wieder Fonts nötig, welche diese Zeichengrafiken enthalten.
> viele "Billig"-Fonts decken grade mal die ASCII (#32..#127) und bestenfalls noch ein bissl ANSI (bis #255) ab, wenn überhaupt

Wobei du hier grundsätzlich erstmal Probleme bekommst, da dein Delphi 6 standardmäßig kein Unicode kann.
Also entweder nutzt du irgendwelche andere Ansi-Zeichen als Ersatz, du mußt dein Delphi unicodefähig machen oder du malst es halt doch selber.

PS: Steuerzeichen steuern etwas und werden nicht angezeigt (siehe #13, #10 und #0) und #0 bis #31 (sowie noch einige andere Bereiche) sind Steuerzeichen.

iphi 17. Mär 2011 10:00

AW: ASCII unter #32 darstellen
 
Das mit dem Font ist mir schon klar.
Warum aber ist der ANSI-Zeichensatz mit Font Arial nich auf allen Windows-Rechnern gleich?

p80286 17. Mär 2011 10:07

AW: ASCII unter #32 darstellen
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1089178)
#4 = END OF TRNASMISSION.

Das ist keine Zeichen zum darstellen! Und je nach verwendeten Font (du müsstest also sicher sein das dein Font auch beim Kunden ist) kommt hier irgendein Zeichne oder ein Rechteck als "Platzhalter" wenn nicht im Font definiert ist.

Das ist ja nicht ganz richtig, es kommt darauf an wie und ob das jeweilige Zeichen interpretiert wird. Diese Interpretation ist zunächst einmal vom zu Grunde liegende Zeichensatz, und dann vom darstellenden Font abhängig.

Zitat:

Zitat von Bernhard Geyer (Beitrag 1089178)
Was willst du eigentlich erreichen bzw. Ausdrücken mit diesem Steuerzeichen?

Das ist eine gute Frage.

Gruß
K-H

Zitat:

Zitat von iphi (Beitrag 1089189)
Warum aber ist der ANSI-Zeichensatz mit Font Arial nich auf allen Windows-Rechnern gleich?

Weil man soviele Fonts löschen und Nachladen kann wie man will?

himitsu 17. Mär 2011 10:19

AW: ASCII unter #32 darstellen
 
Zitat:

Zitat von iphi (Beitrag 1089189)
Warum aber ist der ANSI-Zeichensatz mit Font Arial nich auf allen Windows-Rechnern gleich?

Weil Windows, z.B. je nach installierten Sprachen, unterschiedliche Versionen der Fonts installiert
und sich die Fonts auch noch von Windowsversion/Servicepack zu Windowsversion/Servicepack unterscheiden.

ele 17. Mär 2011 11:13

AW: ASCII unter #32 darstellen
 
In der Theorie gibt es für die Darstellung con Control-Characters dafür reservierte Unicode Zeichen.

Allerdings benötigt dafür das Programm Unicode Unterstützung und eine Unicode-Schriftart, welche diese Zeichen auch enthält...

Edit:
Habe erst jetzt gesehen das Himitsu das bereits erwähnt hat... tschuldigung.

Reinhard Kern 17. Mär 2011 13:39

AW: ASCII unter #32 darstellen
 
Zitat:

Zitat von ele (Beitrag 1089208)
In der Theorie gibt es für die Darstellung con Control-Characters dafür reservierte Unicode Zeichen.
...

Hallo,

schon im ururalten ASCII-Code wurden die Steuerzeichen mit diesen 2 bis 3 Buchstaben angegeben, also CR, LF, SYN usw. Am besten machst du in deinem TLabel Platz für 3 Buchstaben und schreibst sie selbst rein. Damit kommt jeder klar, der überhaupt eine Ahnung von Zeichenkodierung hat. Alternativ könntest du auch sowas wie #010 für LF oder #013 für CR schreiben.

Im PC-Bildschirmcode gab es graphische Zeichen für 00..31, z.B. 03 ist ein Herz. Aber das kennt kein Schwein mehr, ist auch extrem unübersichtlich.

Gruss Reinhard

Satty67 17. Mär 2011 14:32

AW: ASCII unter #32 darstellen
 
Wenn ich das richtig sehe und er im Prinzip nicht die Steuercodes <ASCII32 visualisieren will, sondern einfach nur ein "Häkchen" auf dem Formular:

Wie wäre es mit einem eingeblendeten Glyph (Image) und/oder ein GraphicControl, mit dem man sich die gewünschte Darstellung selbst zeichnet... statt dem Label.

€: bequemer Weg: SpeedButton (Flat), kein störender Tab-Stop, mehrere Bitmaps duchschaltbar, anklickbar für Infofenster...

turboPASCAL 17. Mär 2011 14:45

AW: ASCII unter #32 darstellen
 
Einfach eine gültige Schriftart wie Marlet(?) aus dem Windowsstandartfontpool nutzen oder auf Bitmaps umsetzen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:22 Uhr.
Seite 1 von 2  1 2      

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