Delphi-PRAXiS

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/)
-   -   Delphi Richedit - OnLoad-Event (https://www.delphipraxis.net/126079-richedit-onload-event.html)

DerAndereMicha 17. Dez 2008 15:20


Richedit - OnLoad-Event
 
Hallo,

hat jemand von Euch ne Idee, wie ich den aktuellen Status beim "Text in ein RichEdit-Control laden" herausbekomme. Sowas wie einen OnLoad-Event gibt es ja anscheinend nicht. Bei großen Dateien (mit vielen Objekten/Bildern) dauert das Laden (Parsen?) nämlich oft sehr lange und ich würde gerne in der Zwischenzeit so etwas wie einen Progressbar anzeigen.

Gruß
Micha

taaktaak 17. Dez 2008 20:35

Re: Richedit - OnLoad-Event
 
Moin, Moin,
so ein Event habe ich heute (!) auch verzweifelt gesucht. Brauche das, um direkt nach dem Laden eines Textes das Lineal (d.h. die Texteinrückungen) an den neuen Text anzupassen. Während der Programmlaufzeit nutze ich jetzt OnResizeRequest(). Beim Programmstart hat das bisher nicht funktioniert. Jetzt Lade ich den ersten Text in einem eigenen OnAfterShow() - damit wird nun auch in diesem speziellen Fall die Linieal-Formatierung durch OnResizeRequest() korrekt durchgeführt.
Vielleicht kannst du dieses Event in deinem Fall ja auch nutzen ....

API 17. Dez 2008 21:55

Re: Richedit - OnLoad-Event
 
Vielleicht so: http://www.delphipages.com/threads/t...08022&G=107955

DerAndereMicha 18. Dez 2008 07:52

Re: Richedit - OnLoad-Event
 
Ersteinmal vielen Dank Euch beiden.

@taaktaak: Ein Event danach nutzt mir leider nichts, ich möchte ja einen Fortschrittbalken während des Ladens anzeigen.

@API: Das ist schon mal ein super Ansatz, aber leider macht das Ganze nicht so ganz das was ich möchte. Es zeigt nur den Progress des eigentlichen Stream-Ladens an, das funktioniert aber perfekt!

Bei mir scheint aber die Masse der Zeit zu vergehen, während der bereits geladene Roh-Text geparst wird - denke ich zumindest. Sofern nur normaler Text im RTF-Dokument steht ist alles OK, sobald aber OLE-Objekte in den Dokumenten (Dateigröße nur ca. 200 kB) vorhanden sind, dauert der Aufbau der Anzeige nach dem Laden ewig.

Gruß
Micha

taaktaak 18. Dez 2008 12:09

Re: Richedit - OnLoad-Event
 
Moin, Moin.
Also, du möchtest während des Lade- und Parsevorgangs eine Fortschrittsanzeige darstellen. Du kennst damit exakt den Anfangs- und Endzeitpunkt, da du 1. das Laden des Textes durch einen Aufruf initiierst und 2. das Parsen ausserhalb des RichEditControls mit eigenem Code durchführst. Warum lässt du die Fortschrittsanzeige nicht durch einen Thread darstellen, der zum Anfangszeitpunkt gestartet und mit Beeendigung des Parsens gestoppt wird?

DerAndereMicha 18. Dez 2008 15:47

Re: Richedit - OnLoad-Event
 
Dann hab ich aber nur nen Balken, der sich bewegt; allerdings keinen der am Anfang bei 0% und am Ende auch wirklich bei 100% ist.

Aber ich denke ich werde es wohl so machen müssen...

Gruß
Micha

taaktaak 18. Dez 2008 18:39

Re: Richedit - OnLoad-Event
 
Zitat:

allerdings keinen der am Anfang bei 0% und am Ende auch wirklich bei 100% ist
Warum nicht? Du musst doch ledilich ein Fortschrittskriterium definieren. Nehme z.B. die Dateigröße (was ja irgendwie naheliegend ist) Da seigentliche Laden ist nch deiner Beobachtung sehr schnell und kann vermutlich außer Acht gelassen werden. Bleibt also das Parsen: Dort ist die augenblickliche Position innerhalb der Dateigröße dein aktueller Fortschritt den du anzeigen kannst. Damit ist die Nutzung des Thread dann eigentlich überflüssig, oder?.

DerAndereMicha 19. Dez 2008 06:10

Re: Richedit - OnLoad-Event
 
Ich weiß aber nicht an welcher Stelle "er" gerade beim parsen ist. Das macht doch das Richedit selbst und das hat, wie schon gesagt, keinen geeigneten Event dafür. Genau hier liegt doch mein Problem.

Gruß
Micha

taaktaak 19. Dez 2008 07:47

Re: Richedit - OnLoad-Event
 
Ok, das mit dem Parsen habe ich falsch interpretiert. Aber ist denn jetzt nicht doch wieder OnResizeRequest() das richtige Event? Das dürfte doch erst ausgelöst werden, wenn das Richedit den Text komplett darstellen kann - oder?


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:23 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