AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi ASCII-Sonderzeichen in TRichEdit
Thema durchsuchen
Ansicht
Themen-Optionen

ASCII-Sonderzeichen in TRichEdit

Ein Thema von BasilBavaria · begonnen am 30. Sep 2012 · letzter Beitrag vom 3. Okt 2012
Antwort Antwort
Seite 1 von 2  1 2      
BasilBavaria

Registriert seit: 18. Mai 2011
Ort: Niederbayern
22 Beiträge
 
Turbo Delphi für Win32
 
#1

ASCII-Sonderzeichen in TRichEdit

  Alt 30. Sep 2012, 10:56
Hallo,

ich sitz aufm Schlauch: Wie kann ich in einem TRichEdit die ASCII-Sonderzeichen ab #127 - inbesondere die Linienzeichen wie ═╬═ einfügen und drucken?

Es geht dabei um eine einfache Tabellenausgabe wie in DOS-Zeiten mit einer Mono-Schriftart wie Courier New o.ä.
Als Basis dient eine uralte TP 6 Procedure, die recht einfach Boxen und Linien zeichnen konnte.
Zur Zeit kommt aber immer der erweiterte ANSI-Satz im RichEdit an.

Alternativ die Frage: Wie kann ich einfach Linien im Text zeichnen?

Vielen Dank und viele Grüße aus Niederbayern
Der Basil
Die Zeiten ändern sich Früher traute ich keinem Computer, den ich nicht mehr tragen kann - heute keinem, den ich nicht mehr sehen kann ...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: ASCII-Sonderzeichen in TRichEdit

  Alt 30. Sep 2012, 11:00
Bis Delphi 2007 (ANSI), indem du dir die passende Codepage einstellst und/oder dir einen entsprechenden Font besorgst.

Ab Delphi 2009 (Unicode, bzw. vorher auch mit einer entsprechenden Unicode-Erweiterung), indem du dir im Unicode die entsprechenden Zeichencodes raussuchst, derer Zeichen welche bei der gewünschten Codepage umgesetzt sind.

[add]
Bei Google suchenDOS OEM Zeichensatz
$2B or not $2B
  Mit Zitat antworten Zitat
BasilBavaria

Registriert seit: 18. Mai 2011
Ort: Niederbayern
22 Beiträge
 
Turbo Delphi für Win32
 
#3

AW: ASCII-Sonderzeichen in TRichEdit

  Alt 30. Sep 2012, 11:48
Danke für die schnelle Antwort.

Funktioniert aber leider nicht (oder ich bin zu blöd).
Im Quelltext - nur Beispiel - werden die Zeichen korrekt angezeigt:

Delphi-Quellcode:
RichEdit1.Lines.Add('═╬═');
RichEdit1.Lines.Add('│ ───┌ ┐ └ ┘├ ┤ ┬ ┴ ┼');
Ausprobiert habe ich die Schriften
  • Courier New
  • Terminal
  • Lucida Sans Unicode
und den Font-Einstellungen zum CharSet
  • default
  • ANSI
  • OEM
  • Symbol
Es werden aber die Linien-Zeichen nie korrekt angezeigt!
Die Zeiten ändern sich Früher traute ich keinem Computer, den ich nicht mehr tragen kann - heute keinem, den ich nicht mehr sehen kann ...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: ASCII-Sonderzeichen in TRichEdit

  Alt 30. Sep 2012, 12:20
Wenn du die Zeichen im Quellcode siehst, hast du also die Unicodezeichen verwendet, aber dein Delphi deine VCL kann doch kein Unicode.

- also wie nachfolgend genannt, dein Delphi unicodefähig machen

- oder im Quellcode die Zeichen mit den "entsprechenden" Zeichencode verwenden (die sehn dort dann zwar anders aus) und im Edit die entsprechende Codepage einstellen, damit sie dort richtig dargestellt werden
$2B or not $2B

Geändert von himitsu (30. Sep 2012 um 12:29 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#5

AW: ASCII-Sonderzeichen in TRichEdit

  Alt 30. Sep 2012, 12:23
mit Turbodelphi z.B. mit TNT-Unicode-Controls und
Richedit1.Font.Name := 'Arial Unicode MS';
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
BasilBavaria

Registriert seit: 18. Mai 2011
Ort: Niederbayern
22 Beiträge
 
Turbo Delphi für Win32
 
#6

AW: ASCII-Sonderzeichen in TRichEdit

  Alt 30. Sep 2012, 13:19
Ich verstehe nicht, warum ich die Zeichen im RichEdit zur Laufzeit einfügen kann, speichern und drucken kann - dies aber über den Programmcode nicht möglich ist. Wie gesagt - steh aufm Schlauch.
Wenn ich die Ausgabe speicher, habe ich folgendes Ergebnis.
{\rtf1\ansi\ansicpg1252\deff0\deflang1031{\fonttbl {\f0\fnil Lucida Sans Unicode;}{\f1\fnil\fcharset0 Lucida Sans Unicode;}}
\viewkind4\uc1\pard\f0\fs22 +-+
\par
\par \f1 Kopiert aus Codetabelle
\par \fs23\u9556?\u9552?\u9559?
\par \f0\fs22
\par }
Der blau markierte Bereich wären die Zeichen aus dem Font "Lucida Sans Unicode".

Und - wenn ich das RTF-Dokument wieder lade, werden die Sonderzeichen auch korrekt dargestellt.
Zum Laden/Speichern verwende ich keine Sonderfunktionen, Typumwandlungen oder dergleichen; nur die vorgegebenen Routinen.
Die Zeiten ändern sich Früher traute ich keinem Computer, den ich nicht mehr tragen kann - heute keinem, den ich nicht mehr sehen kann ...
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#7

AW: ASCII-Sonderzeichen in TRichEdit

  Alt 30. Sep 2012, 16:08
Das eingebettete Windowscontrol ist ja Unicodefähig, nur das Turbodelphi darunter nicht ...
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: ASCII-Sonderzeichen in TRichEdit

  Alt 30. Sep 2012, 16:49
Die TRichEdit-Komponente nutzt, bei dir, nunmal nur die ANSI-WinAPI's.

Du kannst versuchen dir aber selber die entsprechende Unicode-API zu implementieren und das RichEdit darüber ansprechen, zusammen mit einem WideString und PWideChar.
Das geht aber nicht mit allen WinControls ... also man kann Vieles zwar per Unicode ansprechen, aber Vieles ist und bleibt ANSI, wenn das Control als ANSI erstellt wurde.

Oder man nimmt fertige Implementationen ala den TNT-Unicode-Controls oder ein aktuelleres Delphi.
$2B or not $2B

Geändert von himitsu (30. Sep 2012 um 16:55 Uhr)
  Mit Zitat antworten Zitat
BasilBavaria

Registriert seit: 18. Mai 2011
Ort: Niederbayern
22 Beiträge
 
Turbo Delphi für Win32
 
#9

AW: ASCII-Sonderzeichen in TRichEdit

  Alt 3. Okt 2012, 12:09
Erstmal Danke für die Rückmeldungen.
Eine andere Delphi-Version kommt nicht in Frage; ebenso wie die TNT-Unicode-Controls, die es nicht kostenlos gibt.

Ich gehe jetzt einen anderen Weg: Ich erstelle mir im Speicher ein Workfile und schreibe darein direkt eine RTF-Datei wie im obigen Beitrag angegeben.
Das RichEdit dient nur als Druckvorschau für feste Texte und braucht nicht zwingend editierbar zu sein. Aber selbst das funktioniert noch bis auf den Tabellenbereich. Zudem habe ich dabei vollen Zugriff auf Formatierungen ohne dabei noch zusätzliche Funktionen zwingend implementieren zu müssen.
Den RTF-Overhead - je nach Textverarbeitung - kann man nach meiner bisherigen Erkenntnis jedenfalls immens reduzieren (meine Testtabelle war zwischen 7kb und 24kb gross - je nach Editor).

Wenn ich meine Lösung endgültig fertig hab und jemand das gleiche Problem hat, dann helf ich gern weiter.

Viele Grüße aus Niederbayern
Die Zeiten ändern sich Früher traute ich keinem Computer, den ich nicht mehr tragen kann - heute keinem, den ich nicht mehr sehen kann ...
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#10

AW: ASCII-Sonderzeichen in TRichEdit

  Alt 3. Okt 2012, 12:11
AFAIK gibt es noch eine freie Version der TNT's

http://www.yunqa.de/delphi/doku.php/...controls/index
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      

 

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 19:46 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