AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Was macht WordPad besser als ein TRichEdit-Control?
Thema durchsuchen
Ansicht
Themen-Optionen

Was macht WordPad besser als ein TRichEdit-Control?

Ein Thema von r29d43 · begonnen am 7. Mär 2009 · letzter Beitrag vom 7. Mär 2009
Antwort Antwort
r29d43

Registriert seit: 18. Jan 2007
289 Beiträge
 
Delphi 10.4 Sydney
 
#1

Was macht WordPad besser als ein TRichEdit-Control?

  Alt 7. Mär 2009, 13:35
Hallo,

es geht um das Laden von größeren RTF-Files in eine RichEdit-Komponente. Da diese Files u.U. (nicht oft aber..) auch mal 10000 Zeilen oder mehr groß sind, dauert das Laden bis zur Anzeige des Textes dann auch schonmal 8-9 Sekunden (bzw. noch mehr). Also schlicht eine zu lange Zeit, in der sich das Programm nicht mehr rührt.

Wenn ich den gleichen File aber ins WordPad lade, dann taucht der dort sofort auf, und ich kann ihn auch sofort nach seinem Auftauchen dort weiter bearbeiten. Also alles ohne diese 8-9 Sekunden Wartezeit.

Irgendwie wundert mich jetzt einfach dieser Unterschied. Denn imho baut doch das WordPad auch selbst wieder auf einem RichEdit-Control auf (wenigstens war das bisher immer so der Fall). Für mich wäre es jetzt also interessant zu wissen, was das WordPad beim Laden von (solch langen) RTF-Files anders macht als eine TRichEdit-Komponente.

Warum ist das WordPad hierbei soviel schneller?

Und könnte man eine TRichEdit-Komponente auch irgendwie dazu bringen, das ebenfalls so schnell hinzukriegen?


Thx schonmal im Voraus.



PS. Könnte hier das Jedi-RichEdit eventuell eine Verbesserung bringen?

PPS. Dieser Wartezeiteffekt tritt übrigens ebenfalls auf, wenn man so einen RTF-Text mittels der RichEdit.LoadFromStream()-Methode läd (z.B. nachdem man zuerst zum Zweck eben einer Zeiteinsparung einen Normal-Text in einem Stream selbst mit rtf-Tags bestückt hat). Gleiche Wartezeiten auch, wenn ich stattdessen die EM_SetTextEx-Message oder die EM_StreamIn-Message benutze.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.586 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Was macht WordPad besser als ein TRichEdit-Control?

  Alt 7. Mär 2009, 13:52
Benutzt du denn z.B. BeginUpdate und EndUpdate? Ich weiß nicht, ob die auch beim laden einer kompletten Datei etwas bringen, aber bei einzelnen Zeilen bringen die sehr sehr viel. Vielleicht ja auch bei dir.

Ich muss das mal selbst testen mit einer großen Datei.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Was macht WordPad besser als ein TRichEdit-Control?

  Alt 7. Mär 2009, 13:59
Eventuell läd WordPad nicht die gesame Datei aufeinmal, sondern immer nur den Teil dr gebraucht/angezeigt wird. Allerdings bin ich mir nicht sicher, ob sich Microsoft die Mühe gemacht hat das zu implementieren.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Was macht WordPad besser als ein TRichEdit-Control?

  Alt 7. Mär 2009, 14:00
Zitat von r29d43:
Irgendwie wundert mich jetzt einfach dieser Unterschied. Denn imho baut doch das WordPad auch selbst wieder auf einem RichEdit-Control auf (wenigstens war das bisher immer so der Fall).
Wie kommst du darauf? Problematisch ist auch das AFAIK erst die neuesten Delphi-Versionen die aktuelle Version des Win32-RichEdit-Controls verwenden.

Alternativ schau dir mal TRichView an.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Was macht WordPad besser als ein TRichEdit-Control?

  Alt 7. Mär 2009, 14:08
Ich weiß auch nicht, welche RichEdit Version Delphi benutzt. Vielleicht kapselt es noch eine ältere Version.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.586 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Was macht WordPad besser als ein TRichEdit-Control?

  Alt 7. Mär 2009, 14:35
Zitat von Luckie:
Ich weiß auch nicht, welche RichEdit Version Delphi benutzt. Vielleicht kapselt es noch eine ältere Version.
Delphi benutzt die alte Version 1.0, zumindest bis Turbo Delphi / Delphi 2006, vermutlich liegt der Unterschied daran.
Anders wäre Delphi aber auch nicht auch mit alten Windowsversionen kompatibel, es sei denn es gäbe eine Unterscheidung.

BeginUpdate..EndUpdate bringt bei 100.000 Zeilen und 10 MiB Dateigröße bei mir ca. 1 Sekunde. Ohne sind es 3,4 Sekunden, mit sind es 2,3 Sekunden beim Laden. Das ist exakt so schnell wie WordPad bei mir.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
r29d43

Registriert seit: 18. Jan 2007
289 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Was macht WordPad besser als ein TRichEdit-Control?

  Alt 7. Mär 2009, 15:36
thx @all,

@Bernhard Geyer, wie ich darauf komme? Das habe ich hier irgendwo schon ein paar mal gelesen. Immer so ala: Das NotePad hat ein Memo drunter und das WordPad ein RichEdit.

Mit einem TRichView (habe mal schnell eine Demo gedownloaded) geht das Laden übrigens genauso schnell wie bei WordPad. Ist allerdings auch nicht gerade billig mit > 200$ (?).


@jaenicke, also bei mir bringt das BeginUpdate/EndUpdate vor und hinter der LoadFromFile-Zeile irgendwie gar nichts. Mein rtf-File hat dabei etwas mehr als 12000 Zeilen, ist ca. 795KB groß und der fast gesamte Text ist da ziemlich formatiert. In beiden Fällen brauch ich hier immer so etwa 7,45 Sekunden.


Und bezüglich einer event. möglichen alten RichEdit-Version (habe ja auch noch das Turbo Delphi): Eventuell könnte hier ja mal jemand mit einer neuern Version (und einer alten) das irgendwie gegenchecken? Wenn es daran liegt, könnte diese Frage so jedenfalls einigermaßen leicht beantwortet werden.


Und für den Fall, es würde an einer alten Version liegen und man hätte jetzt ein Delphi mit einer neueren RichEdit-Kompo: Wäre das Prog. dann eigentlich auch noch bis W2k runter laufbar? Denn bis dahin wollte ich die Laufbarkeit meines Progs eigentlich immer aufrecht erhalten.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.586 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Was macht WordPad besser als ein TRichEdit-Control?

  Alt 7. Mär 2009, 15:58
Zitat von r29d43:
Und bezüglich einer event. möglichen alten RichEdit-Version (habe ja auch noch das Turbo Delphi): Eventuell könnte hier ja mal jemand mit einer neuern Version (und einer alten) das irgendwie gegenchecken? Wenn es daran liegt, könnte diese Frage so jedenfalls einigermaßen leicht beantwortet werden.
Also bei mir ist es mit Delphi 2009 noch etwas langsamer als Delphi 2006, was an Unicode liegen könnte. Bei mir ist aber Wordpad wie gesagt auch nicht schneller als das Delphiprogramm.
Alles getestet unter Vista mit wie gesagt 100.000 Zeilen. Delphi 2006 2,3 Sekunden, Delphi 2009 3,8 Sekunden, Wordpad 2,5 Sekunden.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  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 01: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