![]() |
Richedit initialisieren
Hallo,
ich will den Text der in ein Richedit eingetragen wird in einer TStrings-Variable speichern und später in einem anderen Richedit wieder anzeigen. Nur wenn nichts eingetragen wird, wie kann ich dann die TStrings-Variable initialisieren, damit später beim Anzeigen keine Exception wegen nil ausgelöst wird? Danke schonmal im Voraus René |
Re: Richedit initialisieren
nimm einfach ein TMemo
mmo := TMemo.Create mmo.Lines := Richedit.Lines; oder mmo.Text := Richedit.Text später: Richedit2.Text := mmo.Text Gruss Matthias ps mmo.text ist ein TStrings object. Man sollte abstrakte datentypen nicht verwenden(delphi) |
Re: Richedit initialisieren
Auch hier wieder das Problem, dass so (über Richedit.Text) eine evtl. vorhandene Formatierung im Richedit verlohren geht!
Grüsse! |
Re: Richedit initialisieren
Hallo Matthias,
was muss ich denn beim Konstruktoraufruf für des TMemo als Parameter angeben, parameterlos gibts den leider nicht? |
Re: Richedit initialisieren
Das Memo will einen owner.
Kann Self oder nil sein. Der Owner ist für das zerstören der Instanz von TMemo zuständig. Bei nil musst du das selbst erledigen. Memo.destroy Wegen des formatierten Text ist das Benutzen von TMemo vielleicht doch nicht so gut. ok probieren wir doch mit TStrings. Du kannst eine private Var vom Typ TStrings deklarieren. Danach kannst du direkt Richedit.Lines zuweisen. Kein Create verwenden. Also
Delphi-Quellcode:
Du brauchst dann auch kein Destroy für str, da du keine Instanz erzeugt hast.
var
str :TStrings procedure machwas; begin str := Richedit1.Lines; end; procedure machwasanderes; begin Richedit2.Lines := str; end Gruss |
Re: Richedit initialisieren
Ja so hatte ich es doch schon. Das Problem ist, wenn man nichts in das erste Richedit einträgt, wird später beim Anzeigen eine Exception ausgeworfen, dass nil nicht dem AnzeigeRichedit zugewiesen werden kann. Man müsste es irgendwie initialisieren.
|
Re: Richedit initialisieren
Du musst die Zuweisung auf jeden Fall machen
str := RichEdit1.Lines die TStrings variable ist in diesem Falle nur ein pointer. die Zuweisung funktioniert auch dann, wenn das Richedit leer ist. Der Zeiger str zeigt dann auf einen gültigen Speicherbereich, ist also nicht mehr nil. Mache diese erste Zuweisung z.B. im Form.Create, ansonsten erkläre etwas genauer worums dir geht Gruss Matthias |
Re: Richedit initialisieren
Also mal ehr lich. Was soll bitte der Quatsch mit dem Memo? Wenn ich eine Stringlist berauche, aber nichts anzuzeigen haben, dann nehme ich eine TStringList. Alles andere ist schlicht und ergreifend Ressourcenverschwendung.
|
Re: Richedit initialisieren
@Luckie
warum gleich so verstimmt??? wollte nur helfen...aber wenn dus besser kannst... im übrigen habe ich diese Idee wieder verworfen. Mit TStrings gehts, mit TStringList auch, braucht man aber ev,. nicht |
Re: Richedit initialisieren
Sorry, wenn es etwas verstimmt klang. Aber so was amcht man einfach nicht. ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz