AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

RRichEdit LoadFromFile

Ein Thema von Amateurprofi · begonnen am 25. Jan 2020 · letzter Beitrag vom 29. Jan 2020
Antwort Antwort
Seite 2 von 2     12   
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.077 Beiträge
 
Delphi XE2 Professional
 
#11

AW: RRichEdit LoadFromFile

  Alt 25. Jan 2020, 21:49
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.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

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

AW: RRichEdit LoadFromFile

  Alt 26. Jan 2020, 13:09
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector

Geändert von p80286 (26. Jan 2020 um 13:17 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#13

AW: RRichEdit LoadFromFile

  Alt 26. Jan 2020, 13:21
Eventuell einfach ein RePaint oder Update nach dem Laden aufrufen?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

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

AW: RRichEdit LoadFromFile

  Alt 27. Jan 2020, 00:30
Nö hilft nicht!
Ich hab mir den Fernsehabend mit ein bischen Testen versüßt. Bei einem .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) .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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

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

AW: RRichEdit LoadFromFile

  Alt 27. Jan 2020, 19:17
SendMessage(self.RichEdit1.Handle, EM_EXLIMITTEXT, 0,$7FFFFFF0); Dasisses! ggf muß noch die Richedit-Unit eingebunden werden.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: RRichEdit LoadFromFile

  Alt 28. Jan 2020, 02:33
Die Remarks in MSDN-Library durchsuchenEM_EXLIMITTEXT erklären dann auch, warum gewisse Streamingfunktionen anders reagieren, als wie das Zuweisen an .Text.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

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

AW: RRichEdit LoadFromFile

  Alt 28. Jan 2020, 09:57
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: RRichEdit LoadFromFile

  Alt 28. Jan 2020, 20:09
Für "viel" Text und mit "ungewöhnlichen" Formatierungen sind diese Text-Controls des OS noch nie gut gewesen.
$2B or not $2B
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.077 Beiträge
 
Delphi XE2 Professional
 
#19

AW: RRichEdit LoadFromFile

  Alt 29. Jan 2020, 02:57
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.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   

 

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 22:05 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