Delphi-PRAXiS
Seite 2 von 2     12

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   RRichEdit LoadFromFile (https://www.delphipraxis.net/203220-rrichedit-loadfromfile.html)

Amateurprofi 25. Jan 2020 20:49

AW: RRichEdit LoadFromFile
 
Zitat:

Das es beim ersten mal "Datei öffnen" dauert, kann ich bestätigen.
Zumindest mal gut zu wissen, dass das nicht nur bei mir so lange dauert.

Zitat:

Es wird aber trotzdem nichts angezeigt.
Auch dann nicht, wenn du die Datei noch mal öffnest?

Zitat:

Öffne die RTF-Datei mal in Wordpad und speichere Sie wieder ab.
Dada -> Dateigröße auf 1/10-tel geschrumpft und die Wartezeit beim ersten Laden ist weg.
Hab ich gemacht.
Dateigröße von 1043kb auf 179kb verkleinert.
Aber:
Bei der Erstellung der .hlp Datei sagt Help Workshop
Zitat:

The RTF file E:\Daten\Delphi XE2\Astro\Help\Astro.rtf is corrupted at offset 182476.
Also die Datei mit Word geöffnet und wieder gespeichert.
Dateigröße dann 612kb.
Dann mit Help Workshop wieder die .hlp Datei erstellt. Funktioniert.
Aber:
Die .hlp Datei funktioniert nicht mehr, weil WordPad alle Endnoten entfernt hat.
Auf den Endnoten basieren die Jumps und das Anzeigen der diversen Kapitel und auch die Erstellung der Suchfunktionen.
Wenn ich die Datei mit WinHelp öffne wird nur das erste Kapitel angezeigt.
Zum Glück hatte ich vom Original eine Kopie gespeichert.

p80286 26. Jan 2020 12:09

AW: RRichEdit LoadFromFile
 
Ich hab einmal etwas herumgetestet.
a) Mit Libreoffice dauert es auch ein paar Sekunden. Datai aus Libreoffice gespeichert ist jetzt etwas kleiner und das laden geht etwas schneller, allerdings scheint Formatierung verloren gegangen zu sein.
b) Ein altes Programm zur Analyse von RTF-Files ausgepackt und beide Dateien geladen. Gleiches Verhalten wie von Dir beschrieben. Dann die Aufbereitete TempRTF datei geladen: Nochmals schneller (Aufbereitung: Zeilenumbrüche statt 255-Zeilen).

c) Was die Falschdarstellung angeht, das ist eine Macke von TRichedit. Wenn ich mich richtig erinnere gibt es dafür auch einen Workaround (hier in der DP) aber mir war das damals zu aufwendig das nochmals richtig zu stellen, sooo oft hab ich das Programm nicht gebraucht und verglichen mit Word ist TRichEdit arg kastriert.

Gruß
K-H

P.S.
hab gerade folgendes gefunden:
https://www.delphipraxis.net/163218-...-sichtbar.html

Luckie 26. Jan 2020 12:21

AW: RRichEdit LoadFromFile
 
Eventuell einfach ein RePaint oder Update nach dem Laden aufrufen?

p80286 26. Jan 2020 23:30

AW: RRichEdit LoadFromFile
 
Nö hilft nicht!
Ich hab mir den Fernsehabend mit ein bischen Testen versüßt. Bei einem
Delphi-Quellcode:
.LoadfromFile
wird ein Dummyload für die Initialisierung benötigt. das kann auch eine sehr kleine Datei sein z.B.
Code:
{\rtf1\ansi\ansicpg1252\deff0\nouicompat\deflang1031{\fonttbl{\f0\fnil\fcharset0 Calibri;}}
{\*\generator Riched20 6.3.9600}\viewkind4\uc1 
\pard\sa200\sl276\slmult1\f0\fs22\lang7 hallo rtf1\par
}
Ich hab es auch mit einem (zwei)
Delphi-Quellcode:
.LoadFromStream
versucht, wobei der Initialload von einem Memorystream und der eigentliche Datenload von einem Filestream vorgenommen wurde. Das war nicht von Erfolg gekrönt. Würde mich nicht wundern wenn ich da nicht alle Möglichkeiten ausgeschöpft habe, vllt. habt Ihr da noch eine gute Idee.

Gruß
K-H

p80286 27. Jan 2020 18:17

AW: RRichEdit LoadFromFile
 
Delphi-Quellcode:
SendMessage(self.RichEdit1.Handle, EM_EXLIMITTEXT, 0,$7FFFFFF0);
Dasisses! ggf muß noch die Richedit-Unit eingebunden werden.

Gruß
K-H

himitsu 28. Jan 2020 01:33

AW: RRichEdit LoadFromFile
 
Die Remarks in MSDN-Library durchsuchenEM_EXLIMITTEXT erklären dann auch, warum gewisse Streamingfunktionen anders reagieren, als wie das Zuweisen an .Text.

p80286 28. Jan 2020 08:57

AW: RRichEdit LoadFromFile
 
Aber warum für das erste Laden einer Datei/Stream erst einmal eine BillGatesGedächtnisMinute eingelegt wird, erklärt es nicht. Aber egal, damit läuft es wie gewünscht.

Gruß
K-H

himitsu 28. Jan 2020 19:09

AW: RRichEdit LoadFromFile
 
Für "viel" Text und mit "ungewöhnlichen" Formatierungen sind diese Text-Controls des OS noch nie gut gewesen.

Amateurprofi 29. Jan 2020 01:57

AW: RRichEdit LoadFromFile
 
Zitat:

Zitat von p80286 (Beitrag 1456105)
Delphi-Quellcode:
SendMessage(self.RichEdit1.Handle, EM_EXLIMITTEXT, 0,$7FFFFFF0);
Dasisses! ggf muß noch die Richedit-Unit eingebunden werden.

Gruß
K-H

Hab ich gemacht, Problem scheint gelöst.
Vielen Dank für die Hilfe.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:41 Uhr.
Seite 2 von 2     12

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