AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein TRichedit auf Printer zeichnen XE(4) Problem zu D6
Thema durchsuchen
Ansicht
Themen-Optionen

TRichedit auf Printer zeichnen XE(4) Problem zu D6

Ein Thema von stalkingwolf · begonnen am 23. Nov 2016 · letzter Beitrag vom 23. Nov 2016
Antwort Antwort
Benutzerbild von himitsu
himitsu

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

AW: TRichedit auf Printer zeichnen XE(4) Problem zu D6

  Alt 23. Nov 2016, 16:37
"Bekannt" ja, auch wenn Codegear/Embarcadero das nie igendwo offiziell erwähnt hat.

Ich war damals drüber gestoplert, als irgendjemand Text färben wollte ... mit Pos in RichEdit.Text was gesucht und sich dann gewundert, warum SelStart/SelLength das verfehlen.
Nach jedem Zeilenwechsel um jeweils nochmal ein Zeichen mehr nach rechts, wie mir dann auffiel.
* einfache Lösung: raus mit dem Dreck, also dem Rumpfuschen am Zeilenwechsel
* schrierigere Lösung: die Indize umrechnen (und das hatte ich sogar schon fertig gebaut und denen gegeben)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (23. Nov 2016 um 16:42 Uhr)
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: TRichedit auf Printer zeichnen XE(4) Problem zu D6

  Alt 23. Nov 2016, 17:11
Welche Lösung gibt es denn dann wenn das nicht gefixt wird? Ich wollte auch demnächst das TRichEdit benutzen um diverse Texte färben zu können. Auf Fremdkomponenten wollte ich nicht unbedingt zurückgreifen.

Ich hatte mir vor Monaten/Jahren mal einen kleinen Texteditor geschrieben in dem ich so etwas mit den Standard Controls getestet hatte. Da ist mir allerdings nichts aufgefallen. Vielleicht habe ich da aber nur die genannten Funktionen genutzt.

Wobei: Ich hatte auch Text markiert und dann mit einer Farbpalette eine neue Farbe zugewiesen. Das hat meines Wissens nach funktioniert.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: TRichedit auf Printer zeichnen XE(4) Problem zu D6

  Alt 23. Nov 2016, 20:40
Selber per WinAPI auf das Richedit zugreifen und nicht über die Property/Methoden des TRichEdit

oder selber umrechnen.
Im Prinzip mußt du nur die Zeilen/Zeilenumbrüche vor der Position im Richedit zählen und dann diese Zahl nochmal auf die Position draufrechnen.


ZähleZeilenmbrüche(Start bis SelStart-1) = Offset für SelStart
ZähleZeilenmbrüche(SelStart bis SelStart+SelLength) = Offset für SelLength
Das ist für Position im im RichEdit auf Position Delphi-Text umrechnen.

Nur Andersrum ist es schwerer, also für Position Delphi-Text auf Position im im RichEdit umrechnen.
Da man dort vorausschauen rechnen muß. Wenn der berechnete Offset weitere Zeilenumbrüche trifft, muß man die ebenfalls wieder mit einberechnen usw.
Ein Therapeut entspricht 1024 Gigapeut.
  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 09:27 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