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
 
stalkingwolf

Registriert seit: 6. Mai 2011
523 Beiträge
 
#1

TRichedit auf Printer zeichnen XE(4) Problem zu D6

  Alt 23. Nov 2016, 15:30
Hallo,

ich habe ein Projekt von D6 auf XE4 konvertiert und dieses druckt RTF Dateien.

Ich habe nun das Problem das mir
Code:
LastChar := SendMessage(NewRichEdit.Handle, EM_FORMATRANGE, 0, Longint(@Range));
showmessagefmt('<%d><%d>',[LastChar,NewRichEdit.GetTextLen]);
Erg XE4 : <172><178>
Erg D6 : <180><178>
Unter XE4 Zeichen unterschlägt. Bei einem Test mit einer RTF Datei gibt mir die Funktion unter D6 180 und unter XE4 172 Zeichen zurück.
Das Problem ist, dass drumherum eine Schleife läuft bis alle Zeichen gedruckt sind und dadurch eine Endlosschleife entsteht, weil das Richedit wirklich 178 Zeichen ist.

Dabei ist es auch egal ob TFormatRange chrg.cpMax auf -1 oder auf NewRichEdit.GetTextLen sitzt.

Nachtrag:
Interessant ist, füge ich 3 Leerzeilen hinzu, steigt die Länge um 6, aber der Befehl oben nur um 3.
D.h ich habe nun 1 Zeile mit einem Zeichen.
Resultat 1 -1
Füge ich noch eine Zeile dazu mit einem Zeichen.
dann ist es 3-4. D.h Return wird als 2 gezählt mit GetTextLen aber nur mit einem mit SendMessage()

Nachtrag 2 Lösung
Sorry

Ich habe das Problem gefunden .getTextLen von TRichedit zählt in XE wohl wirklich 2 Zeichen für ein Return.
SendMessage(NewRichEdit.Handle, EM_GETTEXTLENGTHEX, WParam(@TextLenEx), 0); gibt die korrekte Anzahl der Zeichen zurück.

Geändert von stalkingwolf (23. Nov 2016 um 16:15 Uhr)
  Mit Zitat antworten Zitat
 


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 15:09 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