![]() |
trichedit Stream lesen Fehler kein übergeordnetes Fenster
Hi, comm,
habe ein problem mit dem Schreiben und Lesen von Trichedit in Ressourcendatei:
Delphi-Quellcode:
//Save
procedure TForm1.SaveStream1Click(Sender: TObject); var tr:trichedit; begin tr:=trichedit.create(self); tr.parent:=self; WriteComponentResFile(SpeicherFilename, tr); freeandnil(tr); end; //Load Var. A, funktioniert procedure TForm1.LoadStream1Click(Sender: TObject); var tr:trichedit; begin tr:=trichedit.create(self); tr.parent:=self; ReadComponentResFile(SpeicherFilename,tr); end;
Delphi-Quellcode:
Bei Var. B kommt Fehlermeldung "Fehler beim lesen von Richedit1.lines.strings: Element 'Richedit1' hat kein übergeordnetes Fenster"
//Load Var. B funktioniert nicht
procedure TForm1.LoadStream1Click(Sender: TObject); var tr:trichedit; begin tr:=ReadComponentResFile(SpeicherFilename,nil) as TRichEdit; end; Das übergeordnete Fenster scheine ich in Var. A ja mit dem setzen von Parents zu erzeugen. Heißt das, dass Var. B Prinzipiell nicht für tRichedit's geignet ist? Zusatzfrage: Um in Streams schreiben und lesen zu können, muß man mit registerclasses die die Classen registrieren. Wird trichedit automatiscjh registriert - wenn ja wo (in ComCTRLs nicht). Grüße Uwe |
AW: trichedit Stream lesen Fehler kein übergeordnetes Fenster
Vielleicht so?
Delphi-Quellcode:
procedure TForm1.LoadStream1Click(Sender: TObject);
var tr:trichedit; begin tr:=ReadComponentResFile(SpeicherFilename,nil) as TRichEdit; tr.parent := self; // so? end; |
AW: trichedit Stream lesen Fehler kein übergeordnetes Fenster
Hallo Redeemer,
geht so nicht, der Fehler erfolgt schon hier
Delphi-Quellcode:
Parent darf nicht Nil sein, scheinbar für irgendwelche Schreiboperationen nötig. Man könnte statt Form1 (self)
tr:=ReadComponentResFile(SpeicherFilename,nil) as TRichEdit;
auch ein anderen Richedit in Parent schreiben in Var. A - nicht Zielführend, aber mgl. . Gruß Uwe |
AW: trichedit Stream lesen Fehler kein übergeordnetes Fenster
Man kann eine neue Komponente erstellen lassen (Parameter nil),
oder man lässt die Ressource in eine existierende Komponente schreiben, die man vorher auch selber erstellen kann. Bei vorher erstellten Komponenten muß man wegen des Komponenten-Namen aufpassen (der muß leider in der DFM/Ressource drin sein, für die Rootkomponente) ändert sich der Name, dann ist auch die Komponenten-Variable/Feld leer (published Feld in einem TComponent, wie z.B. der Form), denn TComponent setzt Felder in seinem Owner, welche so heißen wie die Komponente. > Bei Verwendung von solchen Feldern/Variablen, knallt es somit, nach dem Auslesen, wenn sich der Name geändert hat. (weil NIL) |
AW: trichedit Stream lesen Fehler kein übergeordnetes Fenster
@Himitsu
Delphi-Quellcode:
aberprocedure TForm1.Button2Click(Sender: TObject); var tr:trichedit; begin tr:=TRichEdit.Create(Self); tr.name:='Willi'; //hieß beim Speichern 'Richedit_UA1' tr.parent:=self; tr.name:='Willi'; readComponentResFile(Speicherfiledockrich ,tr); Memo1.Lines.Add(tr.name); //heißt wieder 'Richedit_UA1'
Delphi-Quellcode:
kommt mit der oben erwähnten Fehlermeldung (kein gültiges Fenster vorhanden)
tr:=ReadComponentResFile(Speicherfiledockrich ,nil) as TRichEdit;
und man kann parent auch nicht mehr setzen. Gruß Uwe |
AW: trichedit Stream lesen Fehler kein übergeordnetes Fenster
Hallo,
dann nimm Application statt nil und setze das danach gleich auf Visible=False. |
AW: trichedit Stream lesen Fehler kein übergeordnetes Fenster
@Hoika
Hallo, meinst du so:
Delphi-Quellcode:
das geht nicht, kommt eine Fehler-Meldung: Fehler beim Lesen von Richedit1.Width: Eigneschaft Width existiert nicht.//geht nicht: tr:=ReadComponentResFile(Speicherfiledockrich ,application) as TRichEdit; tr.visible:=false; Ich denke, da wird versucht, in Applikation die Datzen eines Richedit einzulesen, was wohl nicht gut wäre . Gruß Uwe |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:22 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