Zitat von
mjustin:
Die EM_STREAMIN message aus der
Win32 API ermöglicht es, weitere Inhalte in ein bestehendes RichEdit einzufügen.
Genau dies klappt bei mir leider nicht oder ich bekomme es nicht hin.
Ich arbeite mit Delphi5 unter Windows95 - mein Programm soll später allerdings unter WindowsXP laufen.
Ich möchte gerne den Text einer Datei kontinuierlich einlesen. Die Datei selbst ist ein Logfile eines PC-Spieles mit speziellen Formatierungen (Escape-Sequenzen) für Farben etc. Dafür habe ich ein eigenes TConversion erstellt, das auch prima funktioniert - beim ersten Öffnen der Datei.
Mithilfe eines Timers überprüfe ich dann die Dateilänge und möchte eben, sobald das PC-Spiel wieder etwas in den Logfile geschrieben hat, die neuen Zeilen an meine RTF-Datei auf dem Bildschirm einfach unten anhängen, aber das bekomme ich irgendwie nicht hin.
Verwende ich richedit.lines.loadfromstream (diese Prozedur sendet ja eine EM_STREAMIN-Message), dann wird der neue Text nicht angehängt, sondern er ersetzt den vorher eingelesenen.
Ich denke, es gibt die Möglichkeit, die Datei in einem zweiten RichEdit zu öffnen, die hinzu gekommenen Zeilen ins Clipboard zu kopieren und dann in das ursprünglich RichEdit zu übertragen (das hab ich noch nicht ausprobiert). Aber es muss doch auch anders gehen, nach der Aussage von mjustin.
Oder ist es nicht möglich, direkt aus dem Logfile in das Richedit einzulesen? Muss ich erst die neuen Zeilen in ein zweites Richedit einlesen, dann in einem Stream ablegen und danach diesen Stream in das alte Richedit lesen? Das wäre ja so ähnlich wie über das Clipboard. Auch so hab ich es noch nicht ausprobiert.
Meine Befürchtung dabei ist nämlich, dass auch in diesem Fall der Text nicht angehängt wird, sondern den bereits bestehenden ersetzt, wenn ich mit richedit.lines.loadfromstream einlese.
Ich sehe auch keinen großen Sinn darin, eine eigene loadfromstream-Methode zu programmieren, weil ich nicht wüsste, welche Änderungen ich gegenüber der in Delphi bereits vorhandenen machen müsste, um ein anderes Ergebnis zu erzielen.
Wie kann ich die Aufgabe lösen, die neuen Zeilen einfach an den bestehenden Text anzuhängen?