AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi ASCII Unterschied zwischen Delphi Chr() und Alt + Zahl
Thema durchsuchen
Ansicht
Themen-Optionen

ASCII Unterschied zwischen Delphi Chr() und Alt + Zahl

Ein Thema von Shark99 · begonnen am 17. Jun 2016 · letzter Beitrag vom 17. Jun 2016
Antwort Antwort
Shark99

Registriert seit: 16. Mai 2007
403 Beiträge
 
#1

ASCII Unterschied zwischen Delphi Chr() und Alt + Zahl

  Alt 17. Jun 2016, 13:34
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?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.048 Beiträge
 
Delphi 12 Athens
 
#2

AW: ASCII Unterschied zwischen Delphi Chr() und Alt + Zahl

  Alt 17. Jun 2016, 15:16
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 {$HIGHCHARUNICODE OFF} .
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (17. Jun 2016 um 15:18 Uhr)
  Mit Zitat antworten Zitat
Shark99

Registriert seit: 16. Mai 2007
403 Beiträge
 
#3

AW: ASCII Unterschied zwischen Delphi Chr() und Alt + Zahl

  Alt 17. Jun 2016, 16:04
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.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#4

AW: ASCII Unterschied zwischen Delphi Chr() und Alt + Zahl

  Alt 17. Jun 2016, 16:18
Chr() liefert ANSI (http://www.chip.de/news/ANSI-Code-Ta..._51186087.html)

Alt+xxx liefert ASCII (http://www.chip.de/news/ASCII-Tabell..._51205777.html)
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#5

AW: ASCII Unterschied zwischen Delphi Chr() und Alt + Zahl

  Alt 17. Jun 2016, 16:21
Die Anzahl der Stellen ist entscheidend: Benutze mal Alt+0156 und schon bekommst du dasselbe Zeichen wie bei Chr(156).

MfG Dalai
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#6

AW: ASCII Unterschied zwischen Delphi Chr() und Alt + Zahl

  Alt 17. Jun 2016, 16:28
Interessant, dann bekomme ich ja mit Alt+156 Ascii und mit Alt+0156 Ansi. Das muss ich mir merken.
  Mit Zitat antworten Zitat
Shark99

Registriert seit: 16. Mai 2007
403 Beiträge
 
#7

AW: ASCII Unterschied zwischen Delphi Chr() und Alt + Zahl

  Alt 17. Jun 2016, 16:31
Ja, echt interessant! Was muss ich statt Chr() nehmen um unter Delphi 7 statt Ansi, ASCII zu bekommen?

Laut Hilfe zu Chr() sollte diese ja ASCII und nicht ANSI liefern ("Returns the character for a specified ASCII value.").

Geändert von Shark99 (17. Jun 2016 um 16:46 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#8

AW: ASCII Unterschied zwischen Delphi Chr() und Alt + Zahl

  Alt 17. Jun 2016, 16:34
Kann mir bitte jemand den Unterschied erklären? Hängt bestimmt mit den Codepages zusammen.
Nun Du kennst den Grund doch schon, was soll man Dir noch erklären?

AAALSO, bei der Eingabe über die Tastatur erhält Deine Anwendung Tasteninteger and $FF also immer irgendetwas zwischen 0 und 255 oder aber Tasteninteger . 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.
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#9

AW: ASCII Unterschied zwischen Delphi Chr() und Alt + Zahl

  Alt 17. Jun 2016, 18:22
Was muss ich statt Chr() nehmen um unter Delphi 7 statt Ansi, ASCII zu bekommen?
Schau mal bitte hier: http://www.delphipraxis.net/63354-post3.html

Das Ergebnis müsste für Dich dann in etwa so aussehen:irgendeinstring := Ansi2OEM(Chr(156));
  Mit Zitat antworten Zitat
Shark99

Registriert seit: 16. Mai 2007
403 Beiträge
 
#10

AW: ASCII Unterschied zwischen Delphi Chr() und Alt + Zahl

  Alt 17. Jun 2016, 18:43
Klappt leider nicht.

Ansi2OEM(Chr(156)) liefert ein kleines o statt £.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:28 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