![]() |
ASCII Unterschied zwischen Delphi Chr() und Alt + Zahl
Ich hab ein TMemo mit der Schrift Arial.
Über Chr(156) füge ich dem Memo ein Zeichen hinzu und es schaut so aus: œ Wenn ich in dem Memo den Windows Shortcut nutze um ein ASCII Char hinzuzufügen, also Alt + 156 auf der Zehnertastatur, schaut das Zeichen so aus: £ Kann mir bitte jemand den Unterschied erklären? Hängt bestimmt mit den Codepages zusammen. Wie kann ich Delphi dazu bringen das gleiche mit Chr() zu tun, was der Windows Shortcut tut? |
AW: ASCII Unterschied zwischen Delphi Chr() und Alt + Zahl
Chr ist wie Ord mehr Compilermagic und kann oft wie Char-Chast angesehen werden, (Integer->Char, also früher AnsiChar und seit D2009 WideChar)
allerdings ist Chr weiterhin fast immer ein Cast nach AnsiChar. Bei Char/AnsiChar/WideChar ist immer klar, was bei raus kommt. (außer man macht z.B. AnsiChar und weißt es einem UnicodeString zu) Bei #123, #$12ab kommt es auf die Länge/Formatierung an. So ist #133, #$85 und #$0085 nicht unbedingt das Selbe, denn Einiges wird als ANSI (#$85) und Anderes als Unicode (#$0085) interpretiert. Aber dazu gibt es einen Eintrag in der OH, siehe
Delphi-Quellcode:
.
{$HIGHCHARUNICODE OFF}
|
AW: ASCII Unterschied zwischen Delphi Chr() und Alt + Zahl
Habe das Problem bei Delphi 7, also denke ich nicht dass es mit Unicode zusammenhängt.
Btw, ein Chr(163) liefert bei Arial ein £, es ist also um 7 Stellen zu den Alt + Tastaturblock Shortcuts verschoben. |
AW: ASCII Unterschied zwischen Delphi Chr() und Alt + Zahl
Chr() liefert ANSI (
![]() Alt+xxx liefert ASCII ( ![]() |
AW: ASCII Unterschied zwischen Delphi Chr() und Alt + Zahl
Die Anzahl der Stellen ist entscheidend: Benutze mal Alt+0156 und schon bekommst du dasselbe Zeichen wie bei Chr(156).
MfG Dalai |
AW: ASCII Unterschied zwischen Delphi Chr() und Alt + Zahl
Interessant, dann bekomme ich ja mit Alt+156 Ascii und mit Alt+0156 Ansi. Das muss ich mir merken.
|
AW: ASCII Unterschied zwischen Delphi Chr() und Alt + Zahl
Zitat:
Laut Hilfe zu Chr() sollte diese ja ASCII und nicht ANSI liefern ("Returns the character for a specified ASCII value."). |
AW: ASCII Unterschied zwischen Delphi Chr() und Alt + Zahl
Zitat:
AAALSO, bei der Eingabe über die Tastatur erhält Deine Anwendung
Delphi-Quellcode:
also immer irgendetwas zwischen 0 und 255 oder aber
Tasteninteger and $FF
Delphi-Quellcode:
. das kommt auf die Anwendung an (Word akzeptiert auch 16Bit Kodierungen, Notepad erst einmal nicht). Wenn Deine Anwendung nur 8Bit-Zeichen beherrscht, dann kannst Du über die Codepages die Darstellung auswählen.
Tasteninteger
Ggf gibt es dann auch noch eine Verschiebung (7) um die Steuerzeichen hinter 127 im Ansizeichensatz auszublenden.ExtendedASCII hat dort darstellbare Zeichen. Gruß K-H |
AW: ASCII Unterschied zwischen Delphi Chr() und Alt + Zahl
Zitat:
![]() Das Ergebnis müsste für Dich dann in etwa so aussehen:
Delphi-Quellcode:
irgendeinstring := Ansi2OEM(Chr(156));
|
AW: ASCII Unterschied zwischen Delphi Chr() und Alt + Zahl
Klappt leider nicht.
Ansi2OEM(Chr(156)) liefert ein kleines o statt £. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:25 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