Delphi-PRAXiS

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.

p80286 17. Mär 2011 14:50

AW: ASCII unter #32 darstellen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Reinhard Kern (Beitrag 1089259)
Im PC-Bildschirmcode gab es graphische Zeichen für 00..31, z.B. 03 ist ein Herz. Aber das kennt kein Schwein mehr,..

Ich bin ja kein Schwein, nur ein Neanderthaler. :-)

Zitat:

Zitat von Reinhard Kern (Beitrag 1089259)
.. ist auch extrem unübersichtlich.

Was ist daran unübersichtlich?

Gruß
K-H

alfold 17. Mär 2011 14:55

AW: ASCII unter #32 darstellen
 
Unübersichtlich nicht! Aber ist so, Wer kennt die alle noch auswendig?

p80286 17. Mär 2011 15:08

AW: ASCII unter #32 darstellen
 
Mein Computer ;-)
(und ich und Du und Du ........ wir wissen daßß es sie gibt)
Gruß
K-H

himitsu 17. Mär 2011 15:55

AW: ASCII unter #32 darstellen
 
Und die 7 oder 8 Beept(e) auch noch. (in der Console und im DOS)

DeddyH 17. Mär 2011 16:00

AW: ASCII unter #32 darstellen
 
8 ist Backspace, das beept vermutlich nicht.

patti 17. Mär 2011 16:18

AW: ASCII unter #32 darstellen
 
7 ist die Bell und die beept ;-)

himitsu 17. Mär 2011 16:36

AW: ASCII unter #32 darstellen
 
Ahhh, die 7 beept bellt also :lol:

Nja, ich wußte noch, daß es ein Punkt war ... wobei die Noten keinen Ton von sich geben :stupid:

p80286 17. Mär 2011 17:03

AW: ASCII unter #32 darstellen
 
07075370696e6e657207070808080808080808080808

Assarbad 17. Mär 2011 20:45

AW: ASCII unter #32 darstellen
 
Zitat:

Zitat von himitsu (Beitrag 1089198)
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.

In diesem Fall dürftest du danebenliegen. Viel wahrscheinlicher ist, daß die Codeseite sich unterscheidet und deswegen eine jeweils andere Darstellung selbst mit gleichem Font erfolgt. Desweiteren gibt es verschiedene Formen von Arial (TTF und nicht, kursiv, fett und noch ganz anders).

Unterschiedliche Versionen des Fonts gibt es natürlich dennoch. Aber ich bin mir ziemlich sicher, daß seit vielen Jahren alle infrage kommenden Zeichen bereits vorhanden sind ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:54 Uhr.

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