{
-> Question:
How can I store some TRichEdit components and TEdit Components in a single file?
-> Answer:
Use a filestream and a reader or writer object.
These ease the tasks of writing strings to a binary stream and reading them back.
}
{
-> Frage:
Wie kann ich den Inhalt einiger TRichEdit und TEdit Komponenten in einer einzigen
Datei speichern?
-> Antwort:
Verwende einen FileStraem und ein Reader/Writer Objekt.
Damit kann man leicht strings in einen binären Stream speichern und zurücklesen.
}
// Save routine
// Speichern Routine procedure SaveEditcontrols(const FileName: string; const Controls: array of TCustomEdit); var fs: TFilestream;
writer: TWriter;
i: Integer;
ss: TStringstream; begin fs := TFilestream.Create(FileName, fmCreate); try writer := TWriter.Create(fs, 4096); try
for i := Low(Controls) to High(Controls) do
if Controls[i] is TCustomRichedit then
begin ss := TStringstream.Create(EmptyStr); try
with TRichedit(Controls[i]) do
begin Plaintext := False;
Lines.SaveToStream(ss); end;
writer.WriteString(ss.Datastring); finally ss.Free; end; end
else writer.WriteString(Controls[i].Text); finally writer.Free; end; finally fs.Free; end; end;
// Load routine
// Lade Routine procedure LoadEditcontrols(const FileName: string; const Controls: array of TCustomEdit); var fs: TFilestream;
reader: Treader;
i: Integer;
ss: TStringstream; begin fs := TFilestream.Create(FileName, fmOpenread or fmShareDenyWrite); try reader := Treader.Create(fs, 4096); try
for i := Low(Controls) to High(Controls) do
if Controls[i] is TCustomRichedit then
begin ss := TStringstream.Create(reader.ReadString); try
with TRichedit(Controls[i]) do
begin Plaintext := False;
Lines.LoadfromStream(ss); end; finally ss.Free; end; end
else Controls[i].Text := reader.ReadString; finally reader.Free; end; finally fs.Free; end; end;
// Example to store 2 TRichEdits and 3 Edit Controls to one file
// Beispiel, um 3 TRichEdits und 3 TEdit Controls in einer Datei zu speichern